summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qlogic/qlge
diff options
context:
space:
mode:
authorVlad Yasevich <vyasevic@redhat.com>2014-03-28 03:14:46 +0100
committerDavid S. Miller <davem@davemloft.net>2014-03-28 22:16:50 +0100
commitf6d1ac4b5f15f57929fe0fa283b3a45dfec717a0 (patch)
tree153e011f17d30c20afded26face72c79ecaf9c53 /drivers/net/ethernet/qlogic/qlge
parentbridge: Fix crash with vlan filtering and tcpdump (diff)
downloadlinux-f6d1ac4b5f15f57929fe0fa283b3a45dfec717a0.tar.xz
linux-f6d1ac4b5f15f57929fe0fa283b3a45dfec717a0.zip
qlge: Do not propaged vlan tag offloads to vlans
qlge driver turns off NETIF_F_HW_CTAG_FILTER, but forgets to turn off HW_CTAG_TX and HW_CTAG_RX on vlan devices. With the current settings, q-in-q will only generate a single vlan header. Remember to mask off CTAG_TX and CTAG_RX features in vlan_features. CC: Shahed Shaikh <shahed.shaikh@qlogic.com> CC: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> CC: Ron Mercer <ron.mercer@qlogic.com> Signed-off-by: Vlad Yasevich <vyasevic@redhat.com> Acked-by: Jitendra Kalsaria <jitendra.kalsaria@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qlge')
-rw-r--r--drivers/net/ethernet/qlogic/qlge/qlge_main.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/qlogic/qlge/qlge_main.c b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
index ce2cfddbed50..656c65ddadb4 100644
--- a/drivers/net/ethernet/qlogic/qlge/qlge_main.c
+++ b/drivers/net/ethernet/qlogic/qlge/qlge_main.c
@@ -4765,7 +4765,9 @@ static int qlge_probe(struct pci_dev *pdev,
ndev->features = ndev->hw_features;
ndev->vlan_features = ndev->hw_features;
/* vlan gets same features (except vlan filter) */
- ndev->vlan_features &= ~NETIF_F_HW_VLAN_CTAG_FILTER;
+ ndev->vlan_features &= ~(NETIF_F_HW_VLAN_CTAG_FILTER |
+ NETIF_F_HW_VLAN_CTAG_TX |
+ NETIF_F_HW_VLAN_CTAG_RX);
if (test_bit(QL_DMA64, &qdev->flags))
ndev->features |= NETIF_F_HIGHDMA;