linux/drivers/nvme/host
Jianchao Wang 2b1b7e784a nvme-pci: fix NULL pointer reference in nvme_alloc_ns
When the io queues setup or tagset allocation failed, ctrl.tagset is
NULL.  But the scan work will still be queued and executed, then panic
comes up due to NULL pointer reference of ctrl.tagset.

To fix this, add a new ctrl state NVME_CTRL_ADMIN_ONLY to inidcate only
admin queue is live. When non io queues or tagset allocation failed, ctrl
enters into this state, scan work will not be started.  But async event
work and nvme dev ioctl will be still available.  This will be helpful to
do further investigation and recovery.

Suggested-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jianchao Wang <jianchao.w.wang@oracle.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-01-08 11:02:13 +01:00
..
core.c nvme-pci: fix NULL pointer reference in nvme_alloc_ns 2018-01-08 11:02:13 +01:00
fabrics.c nvme-fabrics: protect against module unload during create_ctrl 2018-01-08 11:01:56 +01:00
fabrics.h nvme-fabrics: protect against module unload during create_ctrl 2018-01-08 11:01:56 +01:00
fc.c nvme-fabrics: protect against module unload during create_ctrl 2018-01-08 11:01:56 +01:00
Kconfig nvme: implement multipath access to nvme subsystems 2017-11-10 19:53:25 -07:00
lightnvm.c lightnvm: make geometry structures 2.0 ready 2018-01-05 08:50:12 -07:00
Makefile Merge branch 'for-4.15/block' of git://git.kernel.dk/linux-block 2017-11-14 15:32:19 -08:00
multipath.c nvme: fix spelling mistake: "requeing" -> "requeuing" 2017-11-20 08:38:10 +01:00
nvme.h nvme-pci: fix NULL pointer reference in nvme_alloc_ns 2018-01-08 11:02:13 +01:00
pci.c nvme-pci: fix NULL pointer reference in nvme_alloc_ns 2018-01-08 11:02:13 +01:00
rdma.c nvme-fabrics: protect against module unload during create_ctrl 2018-01-08 11:01:56 +01:00