[PATCH] nvme-auth: use workqueue dedicated to authentication works

Hannes Reinecke hare at suse.de
Wed Feb 1 02:33:15 PST 2023


On 1/31/23 10:26, Shin'ichiro Kawasaki wrote:
> NVMe In-Band authentication uses two kinds of works: chap->auth_work and
> ctrl->dhchap_auth_work. The latter work flushes or cancels the former
> work. However, the both works are queued to the same workqueue nvme-wq.
> It results in the lockdep WARNING as follows:
> 
>   WARNING: possible recursive locking detected
>   6.2.0-rc4+ #1 Not tainted
>   --------------------------------------------
>   kworker/u16:7/69 is trying to acquire lock:
>   ffff902d52e65548 ((wq_completion)nvme-wq){+.+.}-{0:0}, at: start_flush_work+0x2c5/0x380
> 
>   but task is already holding lock:
>   ffff902d52e65548 ((wq_completion)nvme-wq){+.+.}-{0:0}, at: process_one_work+0x210/0x410
> 
> To avoid the WARNING, introduce a new workqueue nvme-auth-wq dedicated
> to chap->auth_work.
> 
> Reported-by: Daniel Wagner <dwagner at suse.de>
> Link: https://lore.kernel.org/linux-nvme/20230130110802.paafkiipmitwtnwr@carbon.lan/
> Fixes: f50fff73d620 ("nvme: implement In-Band authentication")
> Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki at wdc.com>
> ---
>   drivers/nvme/host/auth.c | 14 ++++++++++++--
>   1 file changed, 12 insertions(+), 2 deletions(-)
> 
Reviewed-by: Hannes Reinecke <hare at suse.de>

Cheers,

Hannes




More information about the Linux-nvme mailing list