git: ee5cdcc50d36 - stable/14 - e1000: fix link power down

From: Kevin Bowling <kbowling_at_FreeBSD.org>
Date: Thu, 26 Sep 2024 03:29:48 UTC
The branch stable/14 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=ee5cdcc50d36a9059da2c3bfff49521909ea1bd5

commit ee5cdcc50d36a9059da2c3bfff49521909ea1bd5
Author:     Anatoly Burakov <anatoly.burakov@intel.com>
AuthorDate: 2024-09-19 05:38:32 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2024-09-26 03:27:57 +0000

    e1000: fix link power down
    
    DPDK commit message
    
    net/e1000/base: fix link power down
    Current code is a result of work to reduce duplication between various
    device models. However, the logic that was replaced did not exactly
    match the new logic, and as a result the link power down was not
    working correctly for some NICs, and the link remained up even when
    the interface is down.
    
    Fix it to correctly power down the link under all circumstances that
    were supported by old logic.
    
    Fixes: 44dddd1 ("net/e1000/base: remove duplicated codes")
    Cc: stable@dpdk.org
    
    Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
    Acked-by: Bruce Richardson <bruce.richardson@intel.com>
    
    Obtained from:  DPDK (a8218d0)
    
    (cherry picked from commit 811912c46b5886f1aa3bb7a51a6ec1270bc947a8)
---
 sys/dev/e1000/e1000_base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/e1000/e1000_base.c b/sys/dev/e1000/e1000_base.c
index ff810821d9e9..d83dc48c4d4d 100644
--- a/sys/dev/e1000/e1000_base.c
+++ b/sys/dev/e1000/e1000_base.c
@@ -137,7 +137,7 @@ void e1000_power_down_phy_copper_base(struct e1000_hw *hw)
 		return;
 
 	/* If the management interface is not enabled, then power down */
-	if (phy->ops.check_reset_block(hw))
+	if (!(e1000_enable_mng_pass_thru(hw) || phy->ops.check_reset_block(hw)))
 		e1000_power_down_phy_copper(hw);
 }