[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <97949e3e0705300818p45dac2deo1c85055d89711848@mail.gmail.com>
Date: Wed, 30 May 2007 08:18:56 -0700
From: "Laurent Chavey" <chavey@...gle.com>
To: "Michael Buesch" <mb@...sch.de>
Cc: netdev@...r.kernel.org
Subject: Re: bond_compute_features() does not handle devices with different CSUM
corrected diff.
--- 2.6.20/drivers/net/bonding/bond_main.c 2007-05-29
19:43:39.010565000 -0700
+++ 2.6.20.fix/drivers/net/bonding/bond_main.c 2007-05-30
08:18:24.018322000 -0700
@@ -1227,7 +1227,14 @@
int i;
bond_for_each_slave(bond, slave, i) {
- features &= (slave->dev->features & BOND_INTERSECT_FEATURES);
+ /* NETIF_F_HW_CSUM includes support for NET_IF_IP_CSUM
+ * as such when looking for the intersection we need to
+ * add it to the device supported features
+ */
+ unsigned long dev_features = slave->dev->features;
+ if (slave->dev->features & NETIF_F_HW_CSUM)
+ dev_features |= NETIF_F_IP_CSUM;
+ features &= (dev_features & BOND_INTERSECT_FEATURES);
if (slave->dev->hard_header_len > max_hard_header_len)
max_hard_header_len = slave->dev->hard_header_len;
}
On 5/30/07, Laurent Chavey <chavey@...gle.com> wrote:
> features = features & (dev_features & BOND_INTERSECT_FEATURES);
>
> On 5/30/07, Michael Buesch <mb@...sch.de> wrote:
> > On Wednesday 30 May 2007 04:47:09 Laurent Chavey wrote:
> > > proposed change.
> > >
> > > --- 2.6.20/drivers/net/bonding/bond_main.c 2007-05-29
> > > 19:43:39.010565000 -0700
> > > +++ 2.6.20.fix/drivers/net/bonding/bond_main.c 2007-05-29
> > > 19:46:12.376980000 -0700
> > > @@ -1227,7 +1227,14 @@
> > > int i;
> > >
> > > bond_for_each_slave(bond, slave, i) {
> > > - features &= (slave->dev->features & BOND_INTERSECT_FEATURES);
> > > + /* NETIF_F_HW_CSUM includes support for NET_IF_IP_CSUM
> > > + * as such when looking for the intersection we need to
> > > + * add it to the device supported features
> > > + */
> > > + unsigned long dev_features = slave->dev->features;
> > > + if (slave->dev->features & NETIF_F_HW_CSUM)
> > > + dev_features |= NETIF_F_IP_CSUM;
> >
> >
> > > + features &= (features & BOND_INTERSECT_FEATURES);
> >
> > Is this statement correct?
> > It's the same as
> > features = features & (features & BOND_INTERSECT_FEATURES);
> > which looks strange to me.
> > Did you mean something like
> > features |= (dev_features & BOND_INTERSECT_FEATURES);
> > ?
> >
> > --
> > Greetings Michael.
> >
>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists