The current code in ixgbe_82599 checks the SFP Ethernet compliance code against IXGBE_SFF_BASEBX10_CAPABLE to determine if an SFP module supports 1GB BASE-BX. According to SFF-8472 (section 5.4 Transceiver Compliance Codes), the BASE-BX10 bit is defined as bit 6, which corresponds to a value of 0x40 (binary 01000000).
However, the current value of IXGBE_SFF_BASEBX10_CAPABLE is 0x64 (binary 01100100), which incorrectly sets bits for 1000BASE-CX (bit 2) and 100BASE-FX (bit 5) in addition to BASE-BX10 (bit 6). This mix-up causes the driver to incorrectly configure for BASE-BX when encountering 1000BASE-CX modules. Although 100BASE-FX does not pass the nominal signaling rate check, this error could lead to future bugs if other codes start to depend on the incorrect value of IXGBE_SFF_BASEBX10_CAPABLE. This patch corrects the value of IXGBE_SFF_BASEBX10_CAPABLE to 0x40. Tore Amundsen (1): ixgbe: Correct BASE-BX10 compliance code drivers/net/ethernet/intel/ixgbe/ixgbe_phy.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.43.0
