mirror of https://gitee.com/openkylin/linux.git
[BNX2]: Fix VLAN on ASF
Always set up the device to strip incoming VLAN tags when ASF is enabled. ASF firmware will not parse packets correctly if VLAN tags are not stripped. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3ee68c4af3
commit
e29054f92d
|
@ -1916,11 +1916,11 @@ bnx2_set_rx_mode(struct net_device *dev)
|
|||
BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG);
|
||||
sort_mode = 1 | BNX2_RPM_SORT_USER0_BC_EN;
|
||||
#ifdef BCM_VLAN
|
||||
if (!bp->vlgrp) {
|
||||
if (!bp->vlgrp && !(bp->flags & ASF_ENABLE_FLAG))
|
||||
rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG;
|
||||
}
|
||||
#else
|
||||
rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG;
|
||||
if (!(bp->flags & ASF_ENABLE_FLAG))
|
||||
rx_mode |= BNX2_EMAC_RX_MODE_KEEP_VLAN_TAG;
|
||||
#endif
|
||||
if (dev->flags & IFF_PROMISC) {
|
||||
/* Promiscuous mode. */
|
||||
|
@ -3218,6 +3218,10 @@ bnx2_init_chip(struct bnx2 *bp)
|
|||
|
||||
REG_WR(bp, BNX2_HC_ATTN_BITS_ENABLE, STATUS_ATTN_BITS_LINK_STATE);
|
||||
|
||||
if (REG_RD_IND(bp, bp->shmem_base + BNX2_PORT_FEATURE) &
|
||||
BNX2_PORT_FEATURE_ASF_ENABLED)
|
||||
bp->flags |= ASF_ENABLE_FLAG;
|
||||
|
||||
/* Initialize the receive filter. */
|
||||
bnx2_set_rx_mode(bp->dev);
|
||||
|
||||
|
|
|
@ -3956,6 +3956,7 @@ struct bnx2 {
|
|||
#define NO_WOL_FLAG 8
|
||||
#define USING_DAC_FLAG 0x10
|
||||
#define USING_MSI_FLAG 0x20
|
||||
#define ASF_ENABLE_FLAG 0x40
|
||||
|
||||
u32 phy_flags;
|
||||
#define PHY_SERDES_FLAG 1
|
||||
|
|
Loading…
Reference in New Issue