Skip to content
Commit 5c959d73 authored by Keith Busch's avatar Keith Busch Committed by Christoph Hellwig
Browse files

nvme-pci: fix rapid add remove sequence

A surprise removal may fail to tear down request queues if it is racing
with the initial asynchronous probe. If that happens, the remove path
won't see the queue resources to tear down, and the controller reset
path may create a new request queue on a removed device, but will not
be able to make forward progress, deadlocking the pci removal.

Protect setting up non-blocking resources from a shutdown by holding the
same mutex, and transition to the CONNECTING state after these resources
are initialized so the probe path may see the dead controller state
before dispatching new IO.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=202081


Reported-by: default avatarAlex Gagniuc <Alex_Gagniuc@Dellteam.com>
Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Tested-by: default avatarAlex Gagniuc <mr.nuke.me@gmail.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent e7ad43c3
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment