[ofa-general] Re: [PATCH V4 8/10] net/bonding: Handlle wrong assumptions that slave is always an Ethernet device

Jay Vosburgh fubar at us.ibm.com
Tue Aug 28 16:26:44 PDT 2007


Moni Shoua <monis at voltaire.com> wrote:

>bonding sometimes uses Ethernet constants (such as MTU and address length) which
>are not good when it enslaves non Ethernet devices (such as InfiniBand).
>
>Signed-off-by: Moni Shoua <monis at voltaire.com>
>---
> drivers/net/bonding/bond_main.c  |    3 ++-
> drivers/net/bonding/bond_sysfs.c |   19 +++++++++++++------
> drivers/net/bonding/bonding.h    |    1 +
> 3 files changed, 16 insertions(+), 7 deletions(-)
>
>Index: net-2.6/drivers/net/bonding/bond_main.c
>===================================================================
>--- net-2.6.orig/drivers/net/bonding/bond_main.c	2007-08-15 10:55:48.000000000 +0300
>+++ net-2.6/drivers/net/bonding/bond_main.c	2007-08-20 14:29:11.911298577 +0300
>@@ -1224,7 +1224,8 @@ static int bond_compute_features(struct 
> 	struct slave *slave;
> 	struct net_device *bond_dev = bond->dev;
> 	unsigned long features = bond_dev->features;
>-	unsigned short max_hard_header_len = ETH_HLEN;
>+	unsigned short max_hard_header_len = max((u16)ETH_HLEN,
>+						bond_dev->hard_header_len);

	Since non-IB bonding masters are run through ether_setup, which
sets hard_header_len to ETH_HLEN, the max() is probably unnecessary, and
I think this could just be bond_dev->hard_header_len.

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, fubar at us.ibm.com



More information about the general mailing list