e100: make sure vlan support isn't advertised on old adapters
authorJesse Brandeburg <jesse.brandeburg@intel.com>
Sat, 22 Oct 2011 05:18:10 +0000 (05:18 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 2 Nov 2011 23:55:00 +0000 (16:55 -0700)
e100 parts don't support vlan offload but they generally do
allow use of vlans in higher software layers via the 8021q module.
That said, there are a couple of really old revisions of e100
hardware that don't even allow the longer frame sizes
required for vlan use with standard MTU.

Use the VLAN_CHALLENGED flag to prevent vlan binding to these
devices.

Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Michael Tokarev <mjt@tls.msk.ru>
CC: David Lamparter <equinox@diac24.net>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/e100.c

index ae17cd1a907fb80749227cb79f6c6c407a5fc3be..5a2fdf7a00c8bbbe9a8f9f7a3a7abf8fd1be180f 100644 (file)
@@ -2810,6 +2810,10 @@ static int __devinit e100_probe(struct pci_dev *pdev,
 
        e100_get_defaults(nic);
 
+       /* D100 MAC doesn't allow rx of vlan packets with normal MTU */
+       if (nic->mac < mac_82558_D101_A4)
+               netdev->features |= NETIF_F_VLAN_CHALLENGED;
+
        /* locks must be initialized before calling hw_reset */
        spin_lock_init(&nic->cb_lock);
        spin_lock_init(&nic->cmd_lock);