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,
------------------------------------------------------------------------
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);