summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2007-08-10 15:47:58 -0700
committerDavid S. Miller <davem@sunset.davemloft.net>2007-08-13 22:52:14 -0700
commit7f353bf29e162459f2f1e2ca25e41011fae65241 (patch)
tree8df6d6c66b69f18d521f76018ff98706e4e2a1b3 /include
parentf71417614d63932cf56ed98a0947568d6259d11e (diff)
downloadlinux-3.10-7f353bf29e162459f2f1e2ca25e41011fae65241.tar.gz
linux-3.10-7f353bf29e162459f2f1e2ca25e41011fae65241.tar.bz2
linux-3.10-7f353bf29e162459f2f1e2ca25e41011fae65241.zip
[NET]: Share correct feature code between bridging and bonding
http://bugzilla.kernel.org/show_bug.cgi?id=8797 shows that the bonding driver may produce bogus combinations of the checksum flags and SG/TSO. For example, if you bond devices with NETIF_F_HW_CSUM and NETIF_F_IP_CSUM you'll end up with a bonding device that has neither flag set. If both have TSO then this produces an illegal combination. The bridge device on the other hand has the correct code to deal with this. In fact, the same code can be used for both. So this patch moves that logic into net/core/dev.c and uses it for both bonding and bridging. In the process I've made small adjustments such as only setting GSO_ROBUST if at least one constituent device supports it. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r--include/linux/netdevice.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 4a616d73cc2..e679b275166 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1131,6 +1131,8 @@ extern void dev_seq_stop(struct seq_file *seq, void *v);
extern void linkwatch_run_queue(void);
+extern int netdev_compute_features(unsigned long all, unsigned long one);
+
static inline int net_gso_ok(int features, int gso_type)
{
int feature = gso_type << NETIF_F_GSO_SHIFT;