diff options
| author | Navdeep Parhar <np@FreeBSD.org> | 2024-07-12 23:56:15 +0000 |
|---|---|---|
| committer | Navdeep Parhar <np@FreeBSD.org> | 2024-07-22 05:20:21 +0000 |
| commit | c1c524852f625cf5f420653f7850d1fe3ff6b4ca (patch) | |
| tree | 6015354e0f3dcb7d938c4ca96d840534091ce43b /sys/dev/cxgbe/offload.h | |
| parent | 283333c0e329fd7aceff16fa3bf2b9892744d883 (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.h | 1 |
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; |
