From: Neil Horman Date: Tue, 24 May 2011 08:31:09 +0000 (+0000) Subject: net: make dev_disable_lro use physical device if passed a vlan dev (v2) X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=f11970e383acd6f505f492f1bc07fb1a4d884829;p=openwrt%2Fstaging%2Fblogic.git net: make dev_disable_lro use physical device if passed a vlan dev (v2) If the device passed into dev_disable_lro is a vlan, then repoint the dev poniter so that we actually modify the underlying physical device. Signed-of-by: Neil Horman CC: davem@davemloft.net CC: bhutchings@solarflare.com Signed-off-by: David S. Miller --- diff --git a/net/core/dev.c b/net/core/dev.c index ec11d757c1fc..c7e305d13b71 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -1308,6 +1308,13 @@ void dev_disable_lro(struct net_device *dev) { u32 flags; + /* + * If we're trying to disable lro on a vlan device + * use the underlying physical device instead + */ + if (is_vlan_dev(dev)) + dev = vlan_dev_real_dev(dev); + if (dev->ethtool_ops && dev->ethtool_ops->get_flags) flags = dev->ethtool_ops->get_flags(dev); else