Skip to content

Commit c263f64

Browse files
Jiawen Wukuba-moo
authored andcommitted
net: txgbe: fix firmware version check
For the device SP, the firmware version is a 32-bit value where the lower 20 bits represent the base version number. And the customized firmware version populates the upper 12 bits with a specific identification number. For other devices AML 25G and 40G, the upper 12 bits of the firmware version is always non-zero, and they have other naming conventions. Only SP devices need to check this to tell if XPCS will work properly. So the judgement of MAC type is added here. And the original logic compared the entire 32-bit value against 0x20010, which caused the outdated base firmwares bypass the version check without a warning. Apply a mask 0xfffff to isolate the lower 20 bits for an accurate base version comparison. Fixes: ab928c2 ("net: txgbe: add FW version warning") Cc: stable@vger.kernel.org Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> Link: https://patch.msgid.link/C787AA5C07598B13+20260422071837.372731-1-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 0781136 commit c263f64

1 file changed

Lines changed: 2 additions & 1 deletion

File tree

drivers/net/ethernet/wangxun/txgbe/txgbe_main.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,8 @@ static int txgbe_probe(struct pci_dev *pdev,
864864
"0x%08x", etrack_id);
865865
}
866866

867-
if (etrack_id < 0x20010)
867+
if (wx->mac.type == wx_mac_sp &&
868+
((etrack_id & 0xfffff) < 0x20010))
868869
dev_warn(&pdev->dev, "Please upgrade the firmware to 0x20010 or above.\n");
869870

870871
err = txgbe_test_hostif(wx);

0 commit comments

Comments
 (0)