be2net: fix a Tx stall bug caused by a specific ipv6 packet
authorAjit Khaparde <ajit.khaparde@emulex.com>
Wed, 24 Apr 2013 11:52:50 +0000 (11:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Apr 2013 23:37:21 +0000 (19:37 -0400)
commitbc0c3405abbb7d7115df824c0e41422396923c1f
treebd0a657ebd43dcb8e342a8831f9151be300f37c1
parent1297f9db4fe8b5c7d77e8da71c2a21ea2d8076ba
be2net: fix a Tx stall bug caused by a specific ipv6 packet

The ASIC could lockup in the transmit path when it tries
to insert VLAN in a specific ipv6 packet.
1) Identify the packet which can cause this.
2) Check if the firmware provides a workaround to prevent this.
3) If workaround is not present, drop the packet.
4) If the firmware provides a workaround, insert the VLAN tag in the
packet and inform the firmware to skip further VLAN insertions.

Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be.h
drivers/net/ethernet/emulex/benet/be_cmds.c
drivers/net/ethernet/emulex/benet/be_cmds.h
drivers/net/ethernet/emulex/benet/be_main.c