[kernel] r4994 - in dists/sid/linux-2.6/debian: . patches-debian
patches-debian/series
Dann Frazier
dannf at costa.debian.org
Thu Dec 8 18:00:18 UTC 2005
Author: dannf
Date: Thu Dec 8 18:00:17 2005
New Revision: 4994
Added:
dists/sid/linux-2.6/debian/patches-debian/net-bonding-consolidation-fix.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches-debian/series/2.6.14-5
Log:
* fix feature consolidation in bonding driver. (closes #340068)
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog (original)
+++ dists/sid/linux-2.6/debian/changelog Thu Dec 8 18:00:17 2005
@@ -1,4 +1,4 @@
-linux-2.6 (2.6.14-5) UNRELEASED; urgency=low
+linux-2.6 (2.6.14-5) unstable; urgency=low
[ dann frazier ]
* ia64-new-assembler-fix.patch
@@ -21,8 +21,9 @@
* drivers-scsi-buslogic-sysfs.patch
expose buslogic devices via sysfs so that they are detected
by initramfs-tools/udev. (closes #342057)
+ * fix feature consolidation in bonding driver. (closes #340068)
- -- dann frazier <dannf at dannf.org> Thu, 8 Dec 2005 09:59:30 -0700
+ -- dann frazier <dannf at debian.org> Thu, 8 Dec 2005 10:59:31 -0700
linux-2.6 (2.6.14-4) unstable; urgency=low
Added: dists/sid/linux-2.6/debian/patches-debian/net-bonding-consolidation-fix.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches-debian/net-bonding-consolidation-fix.patch Thu Dec 8 18:00:17 2005
@@ -0,0 +1,100 @@
+From: Jay Vosburgh <fubar at us.ibm.com>
+Date: Sat, 5 Nov 2005 02:45:45 +0000 (-0800)
+Subject: [PATCH] bonding: fix feature consolidation
+X-Git-Tag: v2.6.15-rc1
+X-Git-Url: http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8e3babcd69ec0fde874838e276eb0b211c6a5647
+
+[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 at us.ibm.com>
+Signed-off-by: John W. Linville <linville at tuxdriver.com>
+---
+
+--- a/drivers/net/bonding/bond_main.c
++++ b/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;
+@@ -4561,8 +4553,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
+--- a/drivers/net/bonding/bonding.h
++++ b/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;
+ };
+
+ /**
Modified: dists/sid/linux-2.6/debian/patches-debian/series/2.6.14-5
==============================================================================
--- dists/sid/linux-2.6/debian/patches-debian/series/2.6.14-5 (original)
+++ dists/sid/linux-2.6/debian/patches-debian/series/2.6.14-5 Thu Dec 8 18:00:17 2005
@@ -1,2 +1,3 @@
+ ia64-new-assembler-fix.patch
+ drivers-scsi-buslogic-sysfs.patch
++ net-bonding-consolidation-fix.patch
More information about the Kernel-svn-changes
mailing list