Skip to content
Commit a9715744 authored by Tao Chiu's avatar Tao Chiu Committed by Christoph Hellwig
Browse files

nvme: move the fabrics queue ready check routines to core



queue_rq() in pci only checks if the dispatched queue (nvmeq) is ready,
e.g. not being suspended. Since nvme_alloc_admin_tags() in reset flow
restarts the admin queue, users are able to submit admin commands to a
controller before reset_work() completes. Commands submitted under this
condition may interfere with commands that performs identify, IO queue
setup in reset_work(), and may result in a hang described in the
following patch.

As seen in the fabrics, user commands are prevented from being executed
under inproper controller states. We may reuse this logic to maintain a
clear admin queue during reset_work().

Signed-off-by: default avatarTao Chiu <taochiu@synology.com>
Signed-off-by: default avatarCody Wong <codywong@synology.com>
Reviewed-by: default avatarLeon Chien <leonchien@synology.com>
Reviewed-by: default avatarKeith Busch <kbusch@kernel.org>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 51ad06cd
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