diff options
author | John Fastabend <john.r.fastabend@intel.com> | 2010-11-24 08:14:50 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-11-28 13:47:19 -0500 |
commit | 19eb5cc559f716dc98ce03a5bad6030fdc71e897 (patch) | |
tree | 52a6ab3702e19b9982144295936b2aeab68fc47b /net/8021q | |
parent | 5a0d2268d259886f0c87131639d19eb4a67b4532 (diff) |
8021q: vlan device is lockless do not transfer real_num_{tx|rx}_queues
Now that the vlan device is lockless and single queue do not
transfer the real num queues. This is causing a BUG_ON to occur.
kernel BUG at net/8021q/vlan.c:345!
Call Trace:
[<ffffffff813fd6e8>] ? fib_rules_event+0x28/0x1b0
[<ffffffff814ad2b5>] notifier_call_chain+0x55/0x80
[<ffffffff81089156>] raw_notifier_call_chain+0x16/0x20
[<ffffffff813e5af7>] call_netdevice_notifiers+0x37/0x70
[<ffffffff813e6756>] netdev_features_change+0x16/0x20
[<ffffffffa02995be>] ixgbe_fcoe_enable+0xae/0x100 [ixgbe]
[<ffffffffa01da06a>] vlan_dev_fcoe_enable+0x2a/0x30 [8021q]
[<ffffffffa02d08c3>] fcoe_create+0x163/0x630 [fcoe]
[<ffffffff811244d5>] ? mmap_region+0x255/0x5a0
[<ffffffff81080ef0>] param_attr_store+0x50/0x80
[<ffffffff810809b6>] module_attr_store+0x26/0x30
[<ffffffff811b9db2>] sysfs_write_file+0xf2/0x180
[<ffffffff8114fc88>] vfs_write+0xc8/0x190
[<ffffffff81150621>] sys_write+0x51/0x90
[<ffffffff8100c0b2>] system_call_fastpath+0x16/0x1b
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/8021q')
-rw-r--r-- | net/8021q/vlan.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index dc1071327d87..6e64f7c6a2e9 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c | |||
@@ -341,9 +341,6 @@ static void vlan_transfer_features(struct net_device *dev, | |||
341 | #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) | 341 | #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE) |
342 | vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid; | 342 | vlandev->fcoe_ddp_xid = dev->fcoe_ddp_xid; |
343 | #endif | 343 | #endif |
344 | vlandev->real_num_tx_queues = dev->real_num_tx_queues; | ||
345 | BUG_ON(vlandev->real_num_tx_queues > vlandev->num_tx_queues); | ||
346 | |||
347 | if (old_features != vlandev->features) | 344 | if (old_features != vlandev->features) |
348 | netdev_features_change(vlandev); | 345 | netdev_features_change(vlandev); |
349 | } | 346 | } |