aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cxgbe/offload.h
diff options
context:
space:
mode:
authorNavdeep Parhar <np@FreeBSD.org>2024-07-12 23:56:15 +0000
committerNavdeep Parhar <np@FreeBSD.org>2024-07-22 05:20:21 +0000
commitc1c524852f625cf5f420653f7850d1fe3ff6b4ca (patch)
tree6015354e0f3dcb7d938c4ca96d840534091ce43b /sys/dev/cxgbe/offload.h
parent283333c0e329fd7aceff16fa3bf2b9892744d883 (diff)
cxgbe/t4_tom: Implement uld_stop and uld_restart for ULD_TOM.
This allows the adapter to be suspended or reset even when stateful TOE is active, in some limited configurations. The LLD has already stopped the adapter hardware and all its queues by the time these ULD routines get called. The general approach in t4_tom is to purge the lookup tables immediately so that they are ready for operation by the time the adapter resumes, and park all the resources left hanging by the stopped hardware into separate "stranded" queues that can be dealt with at leisure. Outstanding active opens, live connections, and synq entries (for connections in the middle of the 3-way handshake) are all treated as if the hardware had reported an abrupt error for the tid. The servers/listeners are a bit different in that no error is reported. They're just noted as non-functional when the hardware stops and are recreated by the driver during restart. MFC after: 1 month Sponsored by: Chelsio Communications
Diffstat (limited to 'sys/dev/cxgbe/offload.h')
-rw-r--r--sys/dev/cxgbe/offload.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/cxgbe/offload.h b/sys/dev/cxgbe/offload.h
index b17056dc0338..c13901ee1a59 100644
--- a/sys/dev/cxgbe/offload.h
+++ b/sys/dev/cxgbe/offload.h
@@ -146,6 +146,7 @@ struct tid_info {
u_int stids_in_use;
u_int nstids_free_head; /* # of available stids at the beginning */
struct stid_head stids;
+ bool stid_tab_stopped;
struct mtx atid_lock __aligned(CACHE_LINE_SIZE);
union aopen_entry *atid_tab;