diff options
author | Jurij Smakov <jurij@wooyd.org> | 2007-03-09 14:13:44 +0000 |
---|---|---|
committer | Jurij Smakov <jurij@wooyd.org> | 2007-03-09 14:13:44 +0000 |
commit | 6626c40343d9ddad2fca22c3079638af470ba7d0 (patch) | |
tree | 1499d55562f622566659fbd0222818bddb7c86ff | |
parent | 18e83927c724f4af30939523a8da520eaf6864dc (diff) | |
download | kernel_replicant_linux-6626c40343d9ddad2fca22c3079638af470ba7d0.tar.gz kernel_replicant_linux-6626c40343d9ddad2fca22c3079638af470ba7d0.tar.bz2 kernel_replicant_linux-6626c40343d9ddad2fca22c3079638af470ba7d0.zip |
Add bugfix/sparc/kenvctrld-cpu-consumption.patch which fixes kenvctrld
kernel process so that it does not consume 100% CPU.
svn path=/dists/sid/linux-2.6/; revision=8341
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch | 43 | ||||
-rw-r--r-- | debian/patches/series/12 | 1 |
3 files changed, 47 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 59a83f77f1b5..2636dcced6eb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,9 @@ linux-2.6 (2.6.18.dfsg.1-12) UNRELEASED; urgency=low * Add bugfix/sparc/eth1394-unaligned-access.patch to fix unaligned memory accesses in the Firewire eth1394 driver. Thanks to Emanuele Roca for the patch. Closes: #412749. + * Add bugfix/sparc/kenvctrld-cpu-consumption.patch to fix kenvctrld + process, so that it does not consume 100% CPU. Thanks to Joerg Friedrich + for the patch, and to J. J. Green and Richard Mortimer for testing. -- Steve Langasek <vorlon@debian.org> Mon, 5 Mar 2007 00:25:35 -0800 diff --git a/debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch b/debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch new file mode 100644 index 000000000000..f3526929113d --- /dev/null +++ b/debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch @@ -0,0 +1,43 @@ +Author : Joerg Friedrich +Date : Thu, 15 Feb 2007 22:08:55 +0100 +Message-ID : <20070215210855.GA22572@stardust.friedrich-kn.de> +Status : acked by David Miller, pushed upstream, confirmed working +Description : fixes kenvctrld so it does not consume 100% CPU + +diff -aur a/drivers/sbus/char/bbc_i2c.c b/drivers/sbus/char/bbc_i2c.c +--- a/drivers/sbus/char/bbc_i2c.c 2006-09-20 06:42:06.000000000 +0300 ++++ b/drivers/sbus/char/bbc_i2c.c 2007-03-08 08:14:46.000000000 +0200 +@@ -187,19 +187,18 @@ + bp->waiting = 1; + add_wait_queue(&bp->wq, &wait); + while (limit-- > 0) { +- u8 val; ++ long val; + +- set_current_state(TASK_INTERRUPTIBLE); +- *status = val = readb(bp->i2c_control_regs + 0); +- if ((val & I2C_PCF_PIN) == 0) { ++ val = wait_event_interruptible_timeout(bp->wq, ++ (((*status = readb(bp->i2c_control_regs + 0)) & I2C_PCF_PIN) == 0), ++ msecs_to_jiffies(250)); ++ if ((val != -ERESTARTSYS) && (val > 0)) { + ret = 0; + break; + } +- msleep_interruptible(250); + } + remove_wait_queue(&bp->wq, &wait); + bp->waiting = 0; +- current->state = TASK_RUNNING; + + return ret; + } +@@ -340,7 +339,7 @@ + */ + if (bp->waiting && + !(readb(bp->i2c_control_regs + 0x0) & I2C_PCF_PIN)) +- wake_up(&bp->wq); ++ wake_up_interruptible(&bp->wq); + + return IRQ_HANDLED; + } diff --git a/debian/patches/series/12 b/debian/patches/series/12 index 583f0c780d7b..fd020b532e50 100644 --- a/debian/patches/series/12 +++ b/debian/patches/series/12 @@ -1,2 +1,3 @@ + bugfix/sparc/e450-boot-failure.patch + bugfix/sparc/eth1394-unaligned-access.patch ++ bugfix/sparc/kenvctrld-cpu-consumption.patch |