nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"
authorMing Lei <ming.lei@redhat.com>
Wed, 12 Apr 2023 08:49:04 +0000 (16:49 +0800)
committerChristoph Hellwig <hch@lst.de>
Thu, 13 Apr 2023 07:02:55 +0000 (09:02 +0200)
commit4f86a6ff6fbd891232dda3ca97fd1b9630b59809
treeb003cedaeea756f6b2368cea9087d7b388cc0936
parentedde9e70bb48301c853299f1bd7c0aa0745a38ea
nvme-fcloop: fix "inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage"

fcloop_fcp_op() could be called from flush request's ->end_io(flush_end_io) in
which the spinlock of fq->mq_flush_lock is grabbed with irq saved/disabled.

So fcloop_fcp_op() can't call spin_unlock_irq(&tfcp_req->reqlock) simply
which enables irq unconditionally.

Fixes the warning by switching to spin_lock_irqsave()/spin_unlock_irqrestore()

Fixes: c38dbbfab1bc ("nvme-fcloop: fix inconsistent lock state warnings")
Reported-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Tested-by: Yi Zhang <yi.zhang@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/target/fcloop.c