Author: jurij-guest
Date: Fri Mar  9 14:13:44 2007
New Revision: 8341

Added:
   
dists/sid/linux-2.6/debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch
Modified:
   dists/sid/linux-2.6/debian/changelog
   dists/sid/linux-2.6/debian/patches/series/12
Log:
Add bugfix/sparc/kenvctrld-cpu-consumption.patch which fixes kenvctrld 
kernel process so that it does not consume 100% CPU.


Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog        (original)
+++ dists/sid/linux-2.6/debian/changelog        Fri Mar  9 14:13:44 2007
@@ -14,6 +14,9 @@
   * 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 <[EMAIL PROTECTED]>  Mon,  5 Mar 2007 00:25:35 -0800
 

Added: 
dists/sid/linux-2.6/debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch
==============================================================================
--- (empty file)
+++ 
dists/sid/linux-2.6/debian/patches/bugfix/sparc/kenvctrld-cpu-consumption.patch 
    Fri Mar  9 14:13:44 2007
@@ -0,0 +1,43 @@
+Author         : Joerg Friedrich
+Date           : Thu, 15 Feb 2007 22:08:55 +0100
+Message-ID     : <[EMAIL PROTECTED]>
+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;
+ }

Modified: dists/sid/linux-2.6/debian/patches/series/12
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/12        (original)
+++ dists/sid/linux-2.6/debian/patches/series/12        Fri Mar  9 14:13:44 2007
@@ -1,2 +1,3 @@
 + bugfix/sparc/e450-boot-failure.patch
 + bugfix/sparc/eth1394-unaligned-access.patch
++ bugfix/sparc/kenvctrld-cpu-consumption.patch

_______________________________________________
Kernel-svn-changes mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to