aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/netdevice.h
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2008-06-19 19:15:47 -0400
committerDavid S. Miller <davem@davemloft.net>2008-06-19 19:15:47 -0400
commit0187bdfb05674147774ca79a79942537f3ad54bd (patch)
tree43980261ce9e2b6ef76356dbbbc7efe3dbb60a02 /include/linux/netdevice.h
parent2e3216cd54b142ba605e87522e15f42e0c4e3996 (diff)
net: Disable LRO on devices that are forwarding
Large Receive Offload (LRO) is only appropriate for packets that are destined for the host, and should be disabled if received packets may be forwarded. It can also confuse the GSO on output. Add dev_disable_lro() function which uses the appropriate ethtool ops to disable LRO if enabled. Add calls to dev_disable_lro() in br_add_if() and functions that enable IPv4 and IPv6 forwarding. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r--include/linux/netdevice.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 45dce2b58d4c..1304ad2d7105 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -886,6 +886,7 @@ extern struct net_device *__dev_get_by_name(struct net *net, const char *name);
886extern int dev_alloc_name(struct net_device *dev, const char *name); 886extern int dev_alloc_name(struct net_device *dev, const char *name);
887extern int dev_open(struct net_device *dev); 887extern int dev_open(struct net_device *dev);
888extern int dev_close(struct net_device *dev); 888extern int dev_close(struct net_device *dev);
889extern void dev_disable_lro(struct net_device *dev);
889extern int dev_queue_xmit(struct sk_buff *skb); 890extern int dev_queue_xmit(struct sk_buff *skb);
890extern int register_netdevice(struct net_device *dev); 891extern int register_netdevice(struct net_device *dev);
891extern void unregister_netdevice(struct net_device *dev); 892extern void unregister_netdevice(struct net_device *dev);