[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Pending sparc patches



Hi,

Below is a list of patches I'm planning to commit to svn, and the 
patches themselves are attached. It is unlikely that they will make 
it into etch's initial release, most probably they will be included 
into the first point release. I'd appreciate if people with affected 
hardware would build the kernels with these patches included and 
report any problems or regressions. Let me know if some other 
essential bugfix is missing.

Author          : Emanuele Rocca <ema@debian.org>
Date            : Tue, 27 Feb 2007 00:23:28 +0100
Message-ID      : <20070226232328.GA6779@darkmoon.home>
Status          : included upstream
Description     : fixes unaligned access in ether1394_reset_priv()

Author          : Doug Nazar <nazard@dragoninc.ca>
Date            : Tue, 27 Feb 2007 13:52:15 -0500
Message-ID      : <00d101c75aa0$66420b60$32c62220$@ca>
Status          : pushed to netdev maintainer for inclusion
Description     : fixes frequent unaligned accesses in ip_rcv() and ip_fast_csum()

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
Description     : fixes kenvctrld so it does not consume 100% CPU

Author          : David Miller
Date            : Mon, 05 Mar 2007 01:11:39 -0800 (PST)
Message-ID      : <20070305.011139.78710584.davem@davemloft.net>
Status          : pushed upstream
Description     : fixes atyfb-related hang on Sunblade 100/150/1000

Best regards,
-- 
Jurij Smakov                                           jurij@wooyd.org
Key: http://www.wooyd.org/pgpkey/                      KeyID: C99E03CC
Author		: Emanuele Rocca <ema@debian.org>
Date		: Tue, 27 Feb 2007 00:23:28 +0100
Message-ID	: <20070226232328.GA6779@darkmoon.home>
Status		: included upstream
Description	: fixes unaligned access in ether1394_reset_priv()

diff -aur a/drivers/ieee1394/eth1394.c b/drivers/ieee1394/eth1394.c
--- a/drivers/ieee1394/eth1394.c	2006-09-20 06:42:06.000000000 +0300
+++ b/drivers/ieee1394/eth1394.c	2007-03-08 08:01:43.000000000 +0200
@@ -65,6 +65,7 @@
 #include <asm/uaccess.h>
 #include <asm/delay.h>
 #include <asm/semaphore.h>
+#include <asm/unaligned.h>
 #include <net/arp.h>
 
 #include "csr1212.h"
@@ -491,7 +492,7 @@
 	int i;
 	struct eth1394_priv *priv = netdev_priv(dev);
 	struct hpsb_host *host = priv->host;
-	u64 guid = *((u64*)&(host->csr.rom->bus_info_data[3]));
+	u64 guid = get_unaligned(&(host->csr.rom->bus_info_data[3]));
 	u16 maxpayload = 1 << (host->csr.max_rec + 1);
 	int max_speed = IEEE1394_SPEED_MAX;
 
Author		: Doug Nazar <nazard@dragoninc.ca>
Date		: Tue, 27 Feb 2007 13:52:15 -0500
Message-ID	: <00d101c75aa0$66420b60$32c62220$@ca>
Status		: pushed to netdev maintainer for inclusion
Description     : fixes frequent unaligned accesses in ip_rcv() and ip_fast_csum()

diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c
index 5a35354..e3774a5 100644
--- a/drivers/net/tulip/tulip_core.c
+++ b/drivers/net/tulip/tulip_core.c
@@ -67,7 +67,7 @@ const char * const medianame[32] = {
 
 /* Set the copy breakpoint for the copy-only-tiny-buffer Rx structure. */
 #if defined(__alpha__) || defined(__arm__) || defined(__hppa__) \
-	|| defined(__sparc_) || defined(__ia64__) \
+	|| defined(__sparc__) || defined(__ia64__) \
 	|| defined(__sh__) || defined(__mips__)
 static int rx_copybreak = 1518;
 #else

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
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;
 }
Author		: David Miller
Date		: Mon, 05 Mar 2007 01:11:39 -0800 (PST)
Message-ID	: <20070305.011139.78710584.davem@davemloft.net>
Status		: pushed upstream
Description	: fixes atyfb-related hang on Sunblade 100/150/1000

diff -aur a/drivers/video/aty/mach64_ct.c b/drivers/video/aty/mach64_ct.c
--- a/drivers/video/aty/mach64_ct.c	2006-09-20 06:42:06.000000000 +0300
+++ b/drivers/video/aty/mach64_ct.c	2007-03-08 07:36:28.000000000 +0200
@@ -598,7 +598,8 @@
 		 * helps for Rage Mobilities that sometimes crash when
 		 * we switch to sclk. (Daniel Mantione, 13-05-2003)
 		 */
-		for (i=0;i<=0x1ffff;i++);
+		for (i=0;i<=0x1ffff;i++)
+			barrier();
 	}
 
 	aty_st_pll_ct(PLL_REF_DIV, pll->ct.pll_ref_div, par);

Reply to: