Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bnx2x: Utilize FW 7.13.1.0.

Commit 46e8a249423ff "bnx2x: Add FW 7.13.1.0" added said .bin FW to
linux-firmware; This patch incorporates the FW in the bnx2x driver.

This introduces 2 fixes/enhancements:
- In some management protocols there are outer-vlan configurations
that can be dynamically changed while device is running. This fixes
some corner cases where such a change did not take effect.

- Prevent VFs from sending MAC control frames; FW would treat a VF
sending such a packet as malicious and block any further communication
done by the VF.

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: Ariel Elior <Ariel.Elior@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by

Yuval Mintz and committed by
David S. Miller
5e091e7a b811580d

+23 -20
+23 -20
drivers/net/ethernet/broadcom/bnx2x/bnx2x_hsi.h
··· 3013 3013 }; 3014 3014 3015 3015 #define BCM_5710_FW_MAJOR_VERSION 7 3016 - #define BCM_5710_FW_MINOR_VERSION 12 3017 - #define BCM_5710_FW_REVISION_VERSION 30 3016 + #define BCM_5710_FW_MINOR_VERSION 13 3017 + #define BCM_5710_FW_REVISION_VERSION 1 3018 3018 #define BCM_5710_FW_ENGINEERING_VERSION 0 3019 3019 #define BCM_5710_FW_COMPILE_FLAGS 1 3020 3020 ··· 3583 3583 CLASSIFY_RULE_OPCODE_MAC, 3584 3584 CLASSIFY_RULE_OPCODE_VLAN, 3585 3585 CLASSIFY_RULE_OPCODE_PAIR, 3586 - CLASSIFY_RULE_OPCODE_VXLAN, 3586 + CLASSIFY_RULE_OPCODE_IMAC_VNI, 3587 3587 MAX_CLASSIFY_RULE 3588 3588 }; 3589 3589 ··· 3826 3826 __le32 echo; 3827 3827 }; 3828 3828 3829 + /* 3830 + * Command for adding/removing a Inner-MAC/VNI classification rule 3831 + */ 3832 + struct eth_classify_imac_vni_cmd { 3833 + struct eth_classify_cmd_header header; 3834 + __le32 vni; 3835 + __le16 imac_lsb; 3836 + __le16 imac_mid; 3837 + __le16 imac_msb; 3838 + __le16 reserved1; 3839 + }; 3829 3840 3830 3841 /* 3831 3842 * Command for adding/removing a MAC classification rule ··· 3880 3869 /* 3881 3870 * Command for adding/removing a VXLAN classification rule 3882 3871 */ 3883 - struct eth_classify_vxlan_cmd { 3884 - struct eth_classify_cmd_header header; 3885 - __le32 vni; 3886 - __le16 inner_mac_lsb; 3887 - __le16 inner_mac_mid; 3888 - __le16 inner_mac_msb; 3889 - __le16 reserved1; 3890 - }; 3891 3872 3892 3873 /* 3893 3874 * union for eth classification rule ··· 3888 3885 struct eth_classify_mac_cmd mac; 3889 3886 struct eth_classify_vlan_cmd vlan; 3890 3887 struct eth_classify_pair_cmd pair; 3891 - struct eth_classify_vxlan_cmd vxlan; 3888 + struct eth_classify_imac_vni_cmd imac_vni; 3892 3889 }; 3893 3890 3894 3891 /* ··· 5626 5623 MAX_IGU_MODE 5627 5624 }; 5628 5625 5626 + /* 5627 + * Inner Headers Classification Type 5628 + */ 5629 + enum inner_clss_type { 5630 + INNER_CLSS_DISABLED, 5631 + INNER_CLSS_USE_VLAN, 5632 + INNER_CLSS_USE_VNI, 5633 + MAX_INNER_CLSS_TYPE}; 5629 5634 5630 5635 /* 5631 5636 * IP versions ··· 5962 5951 TS_OFFSET_INC, 5963 5952 TS_OFFSET_DEC, 5964 5953 MAX_TS_OFFSET_CMD 5965 - }; 5966 - 5967 - /* Tunnel Mode */ 5968 - enum tunnel_mode { 5969 - TUNN_MODE_NONE, 5970 - TUNN_MODE_VXLAN, 5971 - TUNN_MODE_GRE, 5972 - MAX_TUNNEL_MODE 5973 5954 }; 5974 5955 5975 5956 /* zone A per-queue data */