]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
igb: fix link test skipping when interface is admin down
authorKohei Enju <enjuk@amazon.com>
Fri, 15 Aug 2025 06:26:31 +0000 (15:26 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Sep 2025 14:29:58 +0000 (16:29 +0200)
[ Upstream commit d709f178abca22a4d3642513df29afe4323a594b ]

The igb driver incorrectly skips the link test when the network
interface is admin down (if_running == false), causing the test to
always report PASS regardless of the actual physical link state.

This behavior is inconsistent with other drivers (e.g. i40e, ice, ixgbe,
etc.) which correctly test the physical link state regardless of admin
state.
Remove the if_running check to ensure link test always reflects the
physical link state.

Fixes: 8d420a1b3ea6 ("igb: correct link test not being run when link is down")
Signed-off-by: Kohei Enju <enjuk@amazon.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Tested-by: Rinitha S <sx.rinitha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/intel/igb/igb_ethtool.c

index ceff537d9d22dcb863c0612f188f4b4a2baebf54..ba067c3860a510e50f580ba8b41d3ea498c38966 100644 (file)
@@ -2081,11 +2081,8 @@ static void igb_diag_test(struct net_device *netdev,
        } else {
                dev_info(&adapter->pdev->dev, "online testing starting\n");
 
-               /* PHY is powered down when interface is down */
-               if (if_running && igb_link_test(adapter, &data[TEST_LINK]))
+               if (igb_link_test(adapter, &data[TEST_LINK]))
                        eth_test->flags |= ETH_TEST_FL_FAILED;
-               else
-                       data[TEST_LINK] = 0;
 
                /* Online tests aren't run; pass by default */
                data[TEST_REG] = 0;