Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nvme-pci: Skip queue deletion if there are no queues
@ 2018-03-28 18:04 Keith Busch
       [not found] ` <e872954fedc943c08ef11451679d5a2c@AUSX13MPS305.AMER.DELL.COM>
  2018-04-04 13:00 ` Sagi Grimberg
  0 siblings, 2 replies; 5+ messages in thread
From: Keith Busch @ 2018-03-28 18:04 UTC (permalink / raw)


User reported controller always retains CSTS.RDY to 1, which fails
controller disabling when resetting the controller. This is also before
the admin queue is allocated, and trying to disable an unallocated queue
results in a NULL dereference.

Reported-by: Alex Gagniuc <Alex_Gagniuc at Dellteam.com>
Signed-off-by: Keith Busch <keith.busch at intel.com>
---
 drivers/nvme/host/pci.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index cef5ce851a92..b110eac1d0e6 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -2200,7 +2200,7 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown)
 
 	nvme_stop_queues(&dev->ctrl);
 
-	if (!dead) {
+	if (!dead && dev->ctrl.queue_count > 0) {
 		/*
 		 * If the controller is still alive tell it to stop using the
 		 * host memory buffer.  In theory the shutdown / reset should
-- 
2.14.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-04-04 13:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-03-28 18:04 [PATCH] nvme-pci: Skip queue deletion if there are no queues Keith Busch
     [not found] ` <e872954fedc943c08ef11451679d5a2c@AUSX13MPS305.AMER.DELL.COM>
2018-03-28 20:13   ` Alex G.
2018-03-28 20:22     ` Keith Busch
2018-03-28 21:02       ` Alex G.
2018-04-04 13:00 ` Sagi Grimberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox