--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:26:42 2005
+Date: Wed, 9 Nov 2005 10:02:38 -0800
+Message-Id: <200511091802.jA9I2csb003326@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: bonding: fix feature consolidation
+
+From: Jay Vosburgh <fubar@us.ibm.com>
+
+[PATCH] bonding: fix feature consolidation
+
+This should resolve http://bugzilla.kernel.org/show_bug.cgi?id=5519
+
+The current feature computation loses bits that it doesn't know about,
+resulting in an inability to add VLANs and possibly other havoc.
+Rewrote function to preserve bits it doesn't know about, remove an
+unneeded state variable, and simplify the code.
+
+Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
+index 8032126..94cec3c 100644
+---
+ drivers/net/bonding/bond_main.c | 32 +++++++++++---------------------
+ drivers/net/bonding/bonding.h | 7 ++-----
+ 2 files changed, 13 insertions(+), 26 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/net/bonding/bond_main.c
++++ linux-2.6.14.3/drivers/net/bonding/bond_main.c
+@@ -1604,35 +1604,27 @@ static int bond_sethwaddr(struct net_dev
+ (NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM)
+
+ /*
+- * Compute the features available to the bonding device by
+- * intersection of all of the slave devices' BOND_INTERSECT_FEATURES.
+- * Call this after attaching or detaching a slave to update the
+- * bond's features.
++ * Compute the common dev->feature set available to all slaves. Some
++ * feature bits are managed elsewhere, so preserve feature bits set on
++ * master device that are not part of the examined set.
+ */
+ static int bond_compute_features(struct bonding *bond)
+ {
+- int i;
++ unsigned long features = BOND_INTERSECT_FEATURES;
+ struct slave *slave;
+ struct net_device *bond_dev = bond->dev;
+- int features = bond->bond_features;
++ int i;
+
+- bond_for_each_slave(bond, slave, i) {
+- struct net_device * slave_dev = slave->dev;
+- if (i == 0) {
+- features |= BOND_INTERSECT_FEATURES;
+- }
+- features &=
+- ~(~slave_dev->features & BOND_INTERSECT_FEATURES);
+- }
++ bond_for_each_slave(bond, slave, i)
++ features &= (slave->dev->features & BOND_INTERSECT_FEATURES);
+
+- /* turn off NETIF_F_SG if we need a csum and h/w can't do it */
+ if ((features & NETIF_F_SG) &&
+- !(features & (NETIF_F_IP_CSUM |
+- NETIF_F_NO_CSUM |
+- NETIF_F_HW_CSUM))) {
++ !(features & (NETIF_F_IP_CSUM |
++ NETIF_F_NO_CSUM |
++ NETIF_F_HW_CSUM)))
+ features &= ~NETIF_F_SG;
+- }
+
++ features |= (bond_dev->features & ~BOND_INTERSECT_FEATURES);
+ bond_dev->features = features;
+
+ return 0;
+@@ -4508,8 +4500,6 @@ static int __init bond_init(struct net_d
+ NETIF_F_HW_VLAN_RX |
+ NETIF_F_HW_VLAN_FILTER);
+
+- bond->bond_features = bond_dev->features;
+-
+ #ifdef CONFIG_PROC_FS
+ bond_create_proc_entry(bond);
+ #endif
+--- linux-2.6.14.3.orig/drivers/net/bonding/bonding.h
++++ linux-2.6.14.3/drivers/net/bonding/bonding.h
+@@ -40,8 +40,8 @@
+ #include "bond_3ad.h"
+ #include "bond_alb.h"
+
+-#define DRV_VERSION "2.6.4"
+-#define DRV_RELDATE "September 26, 2005"
++#define DRV_VERSION "2.6.5"
++#define DRV_RELDATE "November 4, 2005"
+ #define DRV_NAME "bonding"
+ #define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
+
+@@ -211,9 +211,6 @@ struct bonding {
+ struct bond_params params;
+ struct list_head vlan_list;
+ struct vlan_group *vlgrp;
+- /* the features the bonding device supports, independently
+- * of any slaves */
+- int bond_features;
+ };
+
+ /**
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:30 2005
+Date: Mon, 7 Nov 2005 14:02:58 -0800
+Message-Id: <200511072202.jA7M2wXl001471@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: [stable] [AGPGART] Fix serverworks TLB flush.
+
+From: Dave Jones <davej@redhat.com>
+
+[AGPGART] Fix serverworks TLB flush.
+Go back to what 2.4 kernels used to do here, as if this hits,
+the kernel just hangs indefinitly.
+
+Actually an improvement over 2.4 - we now break; out of the loop
+instead of just printing messages on timeouts.
+
+Signed-off-by: Dave Jones <davej@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+diff --git a/drivers/char/agp/sworks-agp.c b/drivers/char/agp/sworks-agp.c
+index a9fb12c..5396897 100644
+---
+ drivers/char/agp/sworks-agp.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/char/agp/sworks-agp.c
++++ linux-2.6.14.3/drivers/char/agp/sworks-agp.c
+@@ -242,13 +242,27 @@ static int serverworks_fetch_size(void)
+ */
+ static void serverworks_tlbflush(struct agp_memory *temp)
+ {
++ unsigned long timeout;
++
+ writeb(1, serverworks_private.registers+SVWRKS_POSTFLUSH);
+- while (readb(serverworks_private.registers+SVWRKS_POSTFLUSH) == 1)
++ timeout = jiffies + 3*HZ;
++ while (readb(serverworks_private.registers+SVWRKS_POSTFLUSH) == 1) {
+ cpu_relax();
++ if (time_after(jiffies, timeout)) {
++ printk(KERN_ERR PFX "TLB post flush took more than 3 seconds\n");
++ break;
++ }
++ }
+
+ writel(1, serverworks_private.registers+SVWRKS_DIRFLUSH);
+- while(readl(serverworks_private.registers+SVWRKS_DIRFLUSH) == 1)
++ timeout = jiffies + 3*HZ;
++ while (readl(serverworks_private.registers+SVWRKS_DIRFLUSH) == 1) {
+ cpu_relax();
++ if (time_after(jiffies, timeout)) {
++ printk(KERN_ERR PFX "TLB Dir flush took more than 3 seconds\n");
++ break;
++ }
++ }
+ }
+
+ static int serverworks_configure(void)
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:32:39 2005
+Date: Sat, 12 Nov 2005 11:59:25 -0800
+Message-Id: <200511121959.jACJxPZh004172@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: I8K: fix /proc reporting of blank service tags
+
+From: Dmitry Torokhov <dtor_core@ameritech.net>
+
+[PATCH] I8K: fix /proc reporting of blank service tags
+
+Make /proc/i8k display '?' when service tag is blank in BIOS.
+This fixes segfault in i8k gkrellm plugin.
+
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Signed-off-by: Linus Torvalds <torvalds@osdl.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/char/i8k.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/char/i8k.c
++++ linux-2.6.14.3/drivers/char/i8k.c
+@@ -99,7 +99,9 @@ struct smm_regs {
+
+ static inline char *i8k_get_dmi_data(int field)
+ {
+- return dmi_get_system_info(field) ? : "N/A";
++ char *dmi_data = dmi_get_system_info(field);
++
++ return dmi_data && *dmi_data ? dmi_data : "?";
+ }
+
+ /*
+@@ -396,7 +398,7 @@ static int i8k_proc_show(struct seq_file
+ return seq_printf(seq, "%s %s %s %d %d %d %d %d %d %d\n",
+ I8K_PROC_FMT,
+ bios_version,
+- dmi_get_system_info(DMI_PRODUCT_SERIAL) ? : "N/A",
++ i8k_get_dmi_data(DMI_PRODUCT_SERIAL),
+ cpu_temp,
+ left_fan, right_fan, left_speed, right_speed,
+ ac_power, fn_key);
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:27:15 2005
+Date: Mon, 31 Oct 2005 09:05:36 -0800
+Message-Id: <200510311705.j9VH5aDM031690@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: [libata] locking rewrite (== fix)
+
+From: Jeff Garzik <jgarzik@pobox.com>
+
+[libata] locking rewrite (== fix)
+
+A lot of power packed into a little patch.
+
+This change eliminates the sharing between our controller-wide spinlock
+and the SCSI core's Scsi_Host lock. As the locking in libata was
+already highly compartmentalized, always referencing our own lock, and
+never scsi_host::host_lock.
+
+As a side effect, this change eliminates a deadlock from calling
+scsi_finish_command() while inside our spinlock.
+
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/libata-core.c | 2 --
+ drivers/scsi/libata-scsi.c | 9 ++++++++-
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+--- linux-2.6.14.3.orig/drivers/scsi/libata-core.c
++++ linux-2.6.14.3/drivers/scsi/libata-core.c
+@@ -3916,8 +3916,6 @@ static void ata_host_init(struct ata_por
+ host->unique_id = ata_unique_id++;
+ host->max_cmd_len = 12;
+
+- scsi_assign_lock(host, &host_set->lock);
+-
+ ap->flags = ATA_FLAG_PORT_DISABLED;
+ ap->id = host->unique_id;
+ ap->host = host;
+--- linux-2.6.14.3.orig/drivers/scsi/libata-scsi.c
++++ linux-2.6.14.3/drivers/scsi/libata-scsi.c
+@@ -39,6 +39,7 @@
+ #include <scsi/scsi.h>
+ #include "scsi.h"
+ #include <scsi/scsi_host.h>
++#include <scsi/scsi_device.h>
+ #include <linux/libata.h>
+ #include <asm/uaccess.h>
+
+@@ -1565,8 +1566,12 @@ int ata_scsi_queuecmd(struct scsi_cmnd *
+ struct ata_port *ap;
+ struct ata_device *dev;
+ struct scsi_device *scsidev = cmd->device;
++ struct Scsi_Host *shost = scsidev->host;
+
+- ap = (struct ata_port *) &scsidev->host->hostdata[0];
++ ap = (struct ata_port *) &shost->hostdata[0];
++
++ spin_unlock(shost->host_lock);
++ spin_lock(&ap->host_set->lock);
+
+ ata_scsi_dump_cdb(ap, cmd);
+
+@@ -1589,6 +1594,8 @@ int ata_scsi_queuecmd(struct scsi_cmnd *
+ ata_scsi_translate(ap, dev, cmd, done, atapi_xlat);
+
+ out_unlock:
++ spin_unlock(&ap->host_set->lock);
++ spin_lock(shost->host_lock);
+ return 0;
+ }
+
--- /dev/null
+From stable-bounces@linux.kernel.org Mon Dec 12 12:27:13 2005
+Date: Thu, 24 Nov 2005 00:00:03 -0800
+Message-Id: <200511240800.jAO803jw027240@hera.kernel.org>
+From: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
+To: git-commits-head@vger.kernel.org
+Cc:
+Subject: [BRIDGE]: recompute features when adding a new device
+
+From: Olaf Rempel <razzor@kopf-tisch.de>
+
+[BRIDGE]: recompute features when adding a new device
+
+We must recompute bridge features everytime the list of underlying
+devices changes, or we might end up with features that are not supported
+by all devices (eg. NETIF_F_TSO)
+This patch adds the missing recompute when adding a device to the bridge.
+
+Signed-off-by: Olaf Rempel <razzor@kopf-tisch.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/bridge/br_if.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- linux-2.6.14.3.orig/net/bridge/br_if.c
++++ linux-2.6.14.3/net/bridge/br_if.c
+@@ -366,6 +366,7 @@ int br_add_if(struct net_bridge *br, str
+
+ spin_lock_bh(&br->lock);
+ br_stp_recalculate_bridge_id(br);
++ br_features_recompute(br);
+ if ((br->dev->flags & IFF_UP)
+ && (dev->flags & IFF_UP) && netif_carrier_ok(dev))
+ br_stp_enable_port(p);
v4l-dvb-fix-analog-ntsc-for-thomson-dtt-761x-hybrid-tuner.patch
nm256-reset-workaround-for-latitude-csx.patch
i82365-release-all-resources-if-no-devices-are-found.patch
+fix-serverworks-tlb-flush..patch
+bonding-fix-feature-consolidation.patch
+recompute-features-when-adding-a-new-device.patch
+locking-rewrite.patch
+i8k-fix-proc-reporting-of-blank-service-tags.patch