git: 610ff48406ef - stable/14 - cxgbe/t4_tom: Demote STALE L2 table entries to RESOLVING in uld_stop.

From: Navdeep Parhar <np_at_FreeBSD.org>
Date: Mon, 21 Oct 2024 18:39:28 UTC
The branch stable/14 has been updated by np:

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

commit 610ff48406ef779922298e3b9759fb0abb57e0eb
Author:     Navdeep Parhar <np@FreeBSD.org>
AuthorDate: 2024-09-11 07:11:13 +0000
Commit:     Navdeep Parhar <np@FreeBSD.org>
CommitDate: 2024-10-21 17:09:52 +0000

    cxgbe/t4_tom: Demote STALE L2 table entries to RESOLVING in uld_stop.
    
    The STALE state means the L2T entry is valid in hardware but needs to be
    refreshed (ARP/NDP) in software.  But stop/suspend wipes the hardware
    L2T and STALE entries need to be updated just like VALID entries to match
    actual hardware state.
    
    Fixes:  c1c524852f62 cxgbe/t4_tom: Implement uld_stop and uld_restart for ULD_TOM.
    Sponsored by:   Chelsio Communications
    
    (cherry picked from commit 171e57967b3e53f0fb48116df5003ce17163295c)
---
 sys/dev/cxgbe/tom/t4_tom.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/cxgbe/tom/t4_tom.c b/sys/dev/cxgbe/tom/t4_tom.c
index 9b1dcf304196..356ac7edc134 100644
--- a/sys/dev/cxgbe/tom/t4_tom.c
+++ b/sys/dev/cxgbe/tom/t4_tom.c
@@ -2115,7 +2115,7 @@ stop_tom_l2t(struct adapter *sc)
 	for (i = 0; i < d->l2t_size; i++) {
 		e = &d->l2tab[i];
 		mtx_lock(&e->lock);
-		if (e->state == L2T_STATE_VALID)
+		if (e->state == L2T_STATE_VALID || e->state == L2T_STATE_STALE)
 			e->state = L2T_STATE_RESOLVING;
 		/*
 		 * stop_atids is going to clean up _all_ atids in use, including