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 <nhorman@tuxdriver.com>
CC: davem@davemloft.net
CC: bhutchings@solarflare.com

Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Neil Horman 2011-05-24 08:31:09 +00:00 коммит произвёл David S. Miller
Родитель 6dcbbe25dc
Коммит f11970e383
1 изменённых файлов: 7 добавлений и 0 удалений

Просмотреть файл

@ -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