diff options
author | Christoph Hellwig <hch@lst.de> | 2022-09-20 15:37:18 +0200 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2022-09-27 09:22:09 +0200 |
commit | 1befd944e05050d76950014f3dc04ed47faba2c3 (patch) | |
tree | 1524442d9f75fbab5a8c6135d35c6f980ca39c9e /drivers/nvme/target/core.c | |
parent | 0700542a823ba3d3aa9c699a255aecc23dbbcaff (diff) |
nvmet-auth: don't try to cancel a non-initialized work_struct
Currently blktests nvme/002 trips up debugobjects if CONFIG_NVME_AUTH is
enabled, but authentication is not on a queue. This is because
nvmet_auth_sq_free cancels sq->auth_expired_work unconditionaly, while
auth_expired_work is only ever initialized if authentication is enabled
for a given controller.
Fix this by calling most of what is nvmet_init_auth unconditionally
when initializing the SQ, and just do the setting of the result
field in the connect command handler.
Fixes: db1312dd9548 ("nvmet: implement basic In-Band Authentication")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Diffstat (limited to 'drivers/nvme/target/core.c')
-rw-r--r-- | drivers/nvme/target/core.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/nvme/target/core.c b/drivers/nvme/target/core.c index a1345790005f..8e3cf0c3588c 100644 --- a/drivers/nvme/target/core.c +++ b/drivers/nvme/target/core.c @@ -830,6 +830,7 @@ int nvmet_sq_init(struct nvmet_sq *sq) } init_completion(&sq->free_done); init_completion(&sq->confirm_done); + nvmet_auth_sq_init(sq); return 0; } |