In the forcedeth driver hardware vlan support is used even on hardware
that doesn't support it leading to incorrect tagging of some packets
when using vlan.
Signed-off-by: Antoine Reversat <redacted>
---
--- linux-2.6.39/drivers/net/forcedeth.c 2011-05-19 00:06:34.000000000 -0400
+++ linux-2.6.39-fixed/drivers/net/forcedeth.c 2011-06-15
15:57:45.331158001 -0400
@@ -4915,6 +4915,10 @@ static void nv_vlan_rx_register(struct n
{
struct fe_priv *np = get_nvpriv(dev);
+ /* Don't do anything if device doesn't support VLAN */
+ if (!(np->driver_data & DEV_HAS_VLAN))
+ return;
+
spin_lock_irq(&np->lock);
/* save vlan group */