rpms/kernel/FC-6 linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch, NONE, 1.1 linux-2.6-cpufreq-acpi-fix-msr-write.patch, NONE, 1.1 linux-2.6-dev-get-driver-properly.patch, NONE, 1.1 linux-2.6-input-rfkill-wrong-size-flags.patch, NONE, 1.1 linux-2.6-net_sched_fix_deadlock.patch, NONE, 1.1 kernel-2.6.spec, 1.2988, 1.2989
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Mon Jul 16 20:55:07 UTC 2007
- Previous message (by thread): rpms/kernel/FC-6 linux-2.6-libata-unbreak-smart-2.patch, NONE, 1.1 kernel-2.6.spec, 1.2987, 1.2988
- Next message (by thread): rpms/dovecot/FC-6 .cvsignore, 1.19, 1.20 dovecot.spec, 1.68, 1.69 sources, 1.20, 1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: cebbert
Update of /cvs/dist/rpms/kernel/FC-6
In directory cvs.devel.redhat.com:/tmp/cvs-serv25486
Modified Files:
kernel-2.6.spec
Added Files:
linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch
linux-2.6-cpufreq-acpi-fix-msr-write.patch
linux-2.6-dev-get-driver-properly.patch
linux-2.6-input-rfkill-wrong-size-flags.patch
linux-2.6-net_sched_fix_deadlock.patch
Log Message:
* Mon Jul 16 2007 Chuck Ebbert <cebbert at redhat.com>
- bluetooth: hangup tty before releasing rfcomm
- driver core: get driver properly during release
- net scheduler: fix deadlock
- input: rfkill driver screws up the CPU flags
- acpi-cpufreq: make register write work properly again
linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch:
tty.c | 4 ++++
1 files changed, 4 insertions(+)
--- NEW FILE linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=84950cf0ba02fd6a5defe2511bc41f9aa2237632
Commit: 84950cf0ba02fd6a5defe2511bc41f9aa2237632
Parent: 924f0e4a06419fa1996425d1d2512030e43acbba
Author: Mikko Rapeli <mikko.rapeli at iki.fi>
AuthorDate: Wed Jul 11 09:18:15 2007 +0200
Committer: Marcel Holtmann <marcel at holtmann.org>
CommitDate: Wed Jul 11 07:01:26 2007 +0200
[Bluetooth] Hangup TTY before releasing rfcomm_dev
The core problem is that RFCOMM socket layer ioctl can release
rfcomm_dev struct while RFCOMM TTY layer is still actively using
it. Calling tty_vhangup() is needed for a synchronous hangup before
rfcomm_dev is freed.
Addresses the oops at http://bugzilla.kernel.org/show_bug.cgi?id=7509
Acked-by: Alan Cox <alan at lxorguk.ukuu.org.uk>
Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
---
net/bluetooth/rfcomm/tty.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index b2b1cce..ba469b0 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -383,6 +383,10 @@ static int rfcomm_release_dev(void __user *arg)
if (req.flags & (1 << RFCOMM_HANGUP_NOW))
rfcomm_dlc_close(dev->dlc, 0);
+ /* Shut down TTY synchronously before freeing rfcomm_dev */
+ if (dev->tty)
+ tty_vhangup(dev->tty);
+
rfcomm_dev_del(dev);
rfcomm_dev_put(dev);
return 0;
linux-2.6-cpufreq-acpi-fix-msr-write.patch:
acpi-cpufreq.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
--- NEW FILE linux-2.6-cpufreq-acpi-fix-msr-write.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=13424f6514f6444554a103362dd9d31eabbbdc54
Commit: 13424f6514f6444554a103362dd9d31eabbbdc54
Parent: 0a4b2ccc555fa2ca6873d60219047104e4805d45
Author: Venki Pallipadi <venkatesh.pallipadi at intel.com>
AuthorDate: Wed May 23 15:42:13 2007 -0700
Committer: Dave Jones <davej at redhat.com>
CommitDate: Tue May 29 16:56:40 2007 -0400
[CPUFREQ] acpi-cpufreq: Proper ReadModifyWrite of PERF_CTL MSR
During recent acpi-cpufreq changes, writing to PERF_CTL msr
changed from RMW of entire 64 bit to RMW of low 32 bit and clearing of
upper 32 bit. Fix it back to do a proper RMW of the MSR.
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by: Dave Jones <davej at redhat.com>
---
arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c | 13 +++++--------
1 files changed, 5 insertions(+), 8 deletions(-)
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
index 10baa35..18c8b67 100644
--- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -167,11 +167,13 @@ static void do_drv_read(struct drv_cmd *cmd)
static void do_drv_write(struct drv_cmd *cmd)
{
- u32 h = 0;
+ u32 lo, hi;
switch (cmd->type) {
case SYSTEM_INTEL_MSR_CAPABLE:
- wrmsr(cmd->addr.msr.reg, cmd->val, h);
+ rdmsr(cmd->addr.msr.reg, lo, hi);
+ lo = (lo & ~INTEL_MSR_RANGE) | (cmd->val & INTEL_MSR_RANGE);
+ wrmsr(cmd->addr.msr.reg, lo, hi);
break;
case SYSTEM_IO_CAPABLE:
acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
@@ -372,7 +374,6 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
struct cpufreq_freqs freqs;
cpumask_t online_policy_cpus;
struct drv_cmd cmd;
- unsigned int msr;
unsigned int next_state = 0; /* Index into freq_table */
unsigned int next_perf_state = 0; /* Index into perf table */
unsigned int i;
@@ -417,11 +418,7 @@ static int acpi_cpufreq_target(struct cpufreq_policy *policy,
case SYSTEM_INTEL_MSR_CAPABLE:
cmd.type = SYSTEM_INTEL_MSR_CAPABLE;
cmd.addr.msr.reg = MSR_IA32_PERF_CTL;
- msr =
- (u32) perf->states[next_perf_state].
- control & INTEL_MSR_RANGE;
- cmd.val = get_cur_val(online_policy_cpus);
- cmd.val = (cmd.val & ~INTEL_MSR_RANGE) | msr;
+ cmd.val = (u32) perf->states[next_perf_state].control;
break;
case SYSTEM_IO_CAPABLE:
cmd.type = SYSTEM_IO_CAPABLE;
linux-2.6-dev-get-driver-properly.patch:
dd.c | 3 +--
1 files changed, 1 insertion(+), 2 deletions(-)
--- NEW FILE linux-2.6-dev-get-driver-properly.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1f5681aae8feadd113644c9e077152416c12b75c
Commit: 1f5681aae8feadd113644c9e077152416c12b75c
Parent: f8916c11a4dc4cb2367e9bee1788f4e0f1b4eabc
Author: Stefan Richter <stefanr at s5r6.in-berlin.de>
AuthorDate: Sun Jun 17 11:01:18 2007 +0200
Committer: Greg Kroah-Hartman <gregkh at suse.de>
CommitDate: Wed Jul 11 16:09:01 2007 -0700
driver core: properly get driver in device_release_driver
Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
---
drivers/base/dd.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/drivers/base/dd.c b/drivers/base/dd.c
index b0088b0..3c503e1 100644
--- a/drivers/base/dd.c
+++ b/drivers/base/dd.c
@@ -296,9 +296,8 @@ static void __device_release_driver(struct device * dev)
{
struct device_driver * drv;
- drv = dev->driver;
+ drv = get_driver(dev->driver);
if (drv) {
- get_driver(drv);
driver_sysfs_remove(dev);
sysfs_remove_link(&dev->kobj, "driver");
klist_remove(&dev->knode_driver);
linux-2.6-input-rfkill-wrong-size-flags.patch:
rfkill-input.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
--- NEW FILE linux-2.6-input-rfkill-wrong-size-flags.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e6c9116d1dc984cb7ecf1b0fe26ca4a8ab36bb57
Commit: e6c9116d1dc984cb7ecf1b0fe26ca4a8ab36bb57
Parent: 8d9107e8c50e1c4ff43c91c8841805833f3ecfb9
Author: Ingo Molnar <mingo at elte.hu>
AuthorDate: Sat Jul 14 18:50:15 2007 -0700
Committer: David S. Miller <davem at davemloft.net>
CommitDate: Sat Jul 14 18:50:15 2007 -0700
[RFKILL]: fix net/rfkill/rfkill-input.c bug on 64-bit systems
Subject: [patch] net/input: fix net/rfkill/rfkill-input.c bug on 64-bit systems
this recent commit:
commit cf4328cd949c2086091c62c5685f1580fe9b55e4
Author: Ivo van Doorn <IvDoorn at gmail.com>
Date: Mon May 7 00:34:20 2007 -0700
[NET]: rfkill: add support for input key to control wireless radio
added this 64-bit bug:
....
unsigned int flags;
spin_lock_irqsave(&task->lock, flags);
....
irq 'flags' must be unsigned long, not unsigned int. The -rt tree has
strict checks about this on 64-bit so this triggered a build failure.
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: David S. Miller <davem at davemloft.net>
---
net/rfkill/rfkill-input.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/net/rfkill/rfkill-input.c b/net/rfkill/rfkill-input.c
index e5c840c..230e35c 100644
--- a/net/rfkill/rfkill-input.c
+++ b/net/rfkill/rfkill-input.c
@@ -55,7 +55,7 @@ static void rfkill_task_handler(struct work_struct *work)
static void rfkill_schedule_toggle(struct rfkill_task *task)
{
- unsigned int flags;
+ unsigned long flags;
spin_lock_irqsave(&task->lock, flags);
linux-2.6-net_sched_fix_deadlock.patch:
sch_api.c | 6 +-----
1 files changed, 1 insertion(+), 5 deletions(-)
--- NEW FILE linux-2.6-net_sched_fix_deadlock.patch ---
Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0621ed2e4edbe2f6f83dafbf85eecefae7aaf2e8
Commit: 0621ed2e4edbe2f6f83dafbf85eecefae7aaf2e8
Parent: 59eecdfb166f6846ae356ddc744abed5820ad965
Author: Patrick McHardy <kaber at trash.net>
AuthorDate: Sat Jul 14 20:49:26 2007 -0700
Committer: David S. Miller <davem at davemloft.net>
CommitDate: Sat Jul 14 20:49:26 2007 -0700
[NET_SCHED]: Revert "avoid transmit softirq on watchdog wakeup" optimization
As noticed by Ranko Zivojnovic <ranko at spidernet.net>, calling qdisc_run
from the timer handler can result in deadlock:
> CPU#0
>
> qdisc_watchdog() fires and gets dev->queue_lock
> qdisc_run()...qdisc_restart()...
> -> releases dev->queue_lock and enters dev_hard_start_xmit()
>
> CPU#1
>
> tc del qdisc dev ...
> qdisc_graft()...dev_graft_qdisc()...dev_deactivate()...
> -> grabs dev->queue_lock ...
>
> qdisc_reset()...{cbq,hfsc,htb,netem,tbf}_reset()...qdisc_watchdog_cancel()...
> -> hrtimer_cancel() - waiting for the qdisc_watchdog() to exit, while still
> holding dev->queue_lock
>
> CPU#0
>
> dev_hard_start_xmit() returns ...
> -> wants to get dev->queue_lock(!)
>
> DEADLOCK!
The entire optimization is a bit questionable IMO, it moves potentially
large parts of NET_TX_SOFTIRQ work to TIMER_SOFTIRQ/HRTIMER_SOFTIRQ,
which kind of defeats the separation of them.
Signed-off-by: Patrick McHardy <kaber at trash.net>
Acked-by: Ranko Zivojnovic <ranko at spidernet.net>
Signed-off-by: David S. Miller <davem at davemloft.net>
---
net/sched/sch_api.c | 6 +-----
1 files changed, 1 insertions(+), 5 deletions(-)
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index d92ea26..4fd0bec 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -278,11 +278,7 @@ static enum hrtimer_restart qdisc_watchdog(struct hrtimer *timer)
wd->qdisc->flags &= ~TCQ_F_THROTTLED;
smp_wmb();
- if (spin_trylock(&dev->queue_lock)) {
- qdisc_run(dev);
- spin_unlock(&dev->queue_lock);
- } else
- netif_schedule(dev);
+ netif_schedule(dev);
return HRTIMER_NORESTART;
}
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v
retrieving revision 1.2988
retrieving revision 1.2989
diff -u -r1.2988 -r1.2989
--- kernel-2.6.spec 16 Jul 2007 20:13:36 -0000 1.2988
+++ kernel-2.6.spec 16 Jul 2007 20:55:05 -0000 1.2989
@@ -539,14 +539,18 @@
Patch340: linux-2.6-debug-sysfs-crash-debugging.patch
Patch350: linux-2.6-devmem.patch
Patch370: linux-2.6-crash-driver.patch
+Patch380: linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch
+Patch390: linux-2.6-dev-get-driver-properly.patch
Patch400: linux-2.6-scsi-cpqarray-set-master.patch
Patch401: linux-2.6-aacraid-ioctl-security.patch
Patch420: linux-2.6-squashfs.patch
Patch421: linux-2.6-jbd-fix-transaction-dropping.patch
Patch430: linux-2.6-net-silence-noisy-printks.patch
Patch431: linux-2.6-tcp-sack-fix-leak-msgs.patch
+Patch432: linux-2.6-net_sched_fix_deadlock.patch
Patch440: linux-2.6-sha_alignment.patch
Patch450: linux-2.6-input-kill-stupid-messages.patch
+Patch451: linux-2.6-input-rfkill-wrong-size-flags.patch
Patch460: linux-2.6-serial-460800.patch
Patch480: linux-2.6-proc-self-maps-fix.patch
Patch490: linux-2.6-softlockup-disable.patch
@@ -569,6 +573,7 @@
Patch711: linux-2.6-sky2-restore-workarounds.patch
#Patch780: linux-2.6-clockevents-fix-resume-logic.patch
Patch790: linux-2.6-acpi-dock-oops.patch
+Patch791: linux-2.6-cpufreq-acpi-fix-msr-write.patch
Patch800: linux-2.6-wakeups-hdaps.patch
Patch801: linux-2.6-wakeups.patch
Patch900: linux-2.6-sched-cfs.patch
@@ -1118,6 +1123,16 @@
ApplyPatch linux-2.6-crash-driver.patch
#
+# bluetooth
+#
+ApplyPatch linux-2.6-bluetooth-hangup-tty-before-rfcomm.patch
+
+#
+# driver core
+#
+ApplyPatch linux-2.6-dev-get-driver-properly.patch
+
+#
# SCSI Bits.
#
# fix cpqarray pci enable
@@ -1136,12 +1151,16 @@
ApplyPatch linux-2.6-net-silence-noisy-printks.patch
# fix leak in tcp SACk processing
ApplyPatch linux-2.6-tcp-sack-fix-leak-msgs.patch
+# deadlock in net scheduler(s)
+ApplyPatch linux-2.6-net_sched_fix_deadlock.patch
# Misc fixes
# Fix SHA1 alignment problem on ia64
ApplyPatch linux-2.6-sha_alignment.patch
# The input layer spews crap no-one cares about.
ApplyPatch linux-2.6-input-kill-stupid-messages.patch
+# rfkill driver screws up flags
+ApplyPatch linux-2.6-input-rfkill-wrong-size-flags.patch
# Allow to use 480600 baud on 16C950 UARTs
ApplyPatch linux-2.6-serial-460800.patch
# Add a safety net to softlockup so that it doesn't prevent installs.
@@ -1195,6 +1214,8 @@
# ACPI patches
# Fix ACPI dock oops (#238054)
ApplyPatch linux-2.6-acpi-dock-oops.patch
+# acpi-cpufreq: fix register writes
+ApplyPatch linux-2.6-cpufreq-acpi-fix-msr-write.patch
# Fix excessive wakeups
# Make hdaps timer only tick when in use.
@@ -2131,6 +2152,13 @@
%changelog
* Mon Jul 16 2007 Chuck Ebbert <cebbert at redhat.com>
+- bluetooth: hangup tty before releasing rfcomm
+- driver core: get driver properly during release
+- net scheduler: fix deadlock
+- input: rfkill driver screws up the CPU flags
+- acpi-cpufreq: make register write work properly again
+
+* Mon Jul 16 2007 Chuck Ebbert <cebbert at redhat.com>
- add proper caching of last_ctl to the 'unbreak SMART' fix
* Mon Jul 16 2007 Dave Jones <davej at redhat.com>
- Previous message (by thread): rpms/kernel/FC-6 linux-2.6-libata-unbreak-smart-2.patch, NONE, 1.1 kernel-2.6.spec, 1.2987, 1.2988
- Next message (by thread): rpms/dovecot/FC-6 .cvsignore, 1.19, 1.20 dovecot.spec, 1.68, 1.69 sources, 1.20, 1.21
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list