From bf3f35e7ce3991bbd374a1627a075a68d0521ea5 Mon Sep 17 00:00:00 2001 From: Neil Horman Date: Tue, 24 May 2011 08:31:09 +0000 Subject: [PATCH] --- yaml --- r: 251652 b: refs/heads/master c: f11970e383acd6f505f492f1bc07fb1a4d884829 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/dev.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 6a2fe5aa60ff..92041b15a5e5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6dcbbe25dcc9bd2bdeb4f685f8fb874ffc10e6be +refs/heads/master: f11970e383acd6f505f492f1bc07fb1a4d884829 diff --git a/trunk/net/core/dev.c b/trunk/net/core/dev.c index ec11d757c1fc..c7e305d13b71 100644 --- a/trunk/net/core/dev.c +++ b/trunk/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