diff options
| author | Maurizio Lombardi <mlombard@redhat.com> | 2026-05-14 10:32:55 +0200 |
|---|---|---|
| committer | Keith Busch <kbusch@kernel.org> | 2026-05-20 11:45:44 -0700 |
| commit | 00d7b33351aac0ea55d17167561e12bbeca73138 (patch) | |
| tree | ac05348ccc0145a4c732ccfa4096374a97f4d423 /include/linux/timerqueue_types.h | |
| parent | 233bbeb4a47cbead8c0471c0b8daec141033eae4 (diff) | |
nvme-core: warn on allocating admin tag set with existing queue
Currently, nvme_alloc_admin_tag_set() silently drops and releases
the existing admin_q if it called on a controller that already
had one (e.g., during a controller reset).
However, transport drivers should not be reallocating the admin tag
set and queue during a reset. Dropping the old queue and allocating
a new one destroys user-configured timeouts and may race against
nvme_admin_timeout_store()
Since all transport drivers are now expected to preserve the admin queue
across resets, calling nvme_alloc_admin_tag_set() when ctrl->admin_q
is already populated is a bug.
Remove the silent cleanup and replace it with a WARN_ON_ONCE() to
explicitly catch any transport drivers that violate this lifecycle rule
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'include/linux/timerqueue_types.h')
0 files changed, 0 insertions, 0 deletions
