diff options
author | Jiri Pirko <jpirko@redhat.com> | 2011-07-20 04:54:35 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-07-21 13:47:56 -0700 |
commit | 892ef5d85259e193505d553c10237fd5dc9a3d0d (patch) | |
tree | 9d755e3311ce8592b8b23cf5928431f107e7902c /drivers/net/cxgb3/cxgb3_offload.c | |
parent | dc437974af52e78f2736543dfee94cc385dae6e9 (diff) |
cxgb3: do vlan cleanup
- unify vlan and nonvlan rx path
- kill pi->vlan_grp and vlan_rx_register
- allow to turn on/off rx/tx vlan accel via ethtool (set_features)
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cxgb3/cxgb3_offload.c')
-rw-r--r-- | drivers/net/cxgb3/cxgb3_offload.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/drivers/net/cxgb3/cxgb3_offload.c b/drivers/net/cxgb3/cxgb3_offload.c index fa1b450af82..32636a1d62a 100644 --- a/drivers/net/cxgb3/cxgb3_offload.c +++ b/drivers/net/cxgb3/cxgb3_offload.c @@ -176,16 +176,13 @@ static struct net_device *get_iff_from_mac(struct adapter *adapter, int i; for_each_port(adapter, i) { - struct vlan_group *grp; struct net_device *dev = adapter->port[i]; - const struct port_info *p = netdev_priv(dev); if (!memcmp(dev->dev_addr, mac, ETH_ALEN)) { if (vlan && vlan != VLAN_VID_MASK) { - grp = p->vlan_grp; - dev = NULL; - if (grp) - dev = vlan_group_get_device(grp, vlan); + rcu_read_lock(); + dev = __vlan_find_dev_deep(dev, vlan); + rcu_read_unlock(); } else if (netif_is_bond_slave(dev)) { while (dev->master) dev = dev->master; |