linux/drivers/nvme/host
Keith Busch 921920ab32 NVMe: Unbind driver on failure
Instead of removing the PCI device from the kernel's topology on
controller failure, this patch simply requests unbinding the device
from the driver. This avoids concurrently running pci removal with the
hot plug event, which has been reported to be problematic when multiple
surprise events occur near simultaneously.

The other benefit is that we will have PCI config and memory space
available to poke around for debugging a failed controller, assuming
the device was not physically removed.

The down side occurs if the platform and/or kernel do not support any
type of surprise hot removal. The device will remain visible through
sysfs (and therefore lspci), and some manual work is necessary to get
the logical topology corrected. But if your platform and/or kernel don't
support surprise removal, you probably shouldn't be doing that anyway.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-05-17 17:14:21 -06:00
..
core.c nvme: fix nvme_ns_remove() deadlock 2016-05-02 09:16:13 -06:00
Kconfig NVMe: small typo in section BLK_DEV_NVME_SCSI of host/Kconfig 2016-04-26 08:31:50 -06:00
lightnvm.c lightnvm: rename nr_pages to nr_ppas on nvm_rq 2016-05-06 12:51:10 -06:00
Makefile nvme: split pci module out of core module 2016-02-10 14:22:38 -07:00
nvme.h nvme: add helper nvme_cleanup_cmd() 2016-05-02 09:11:58 -06:00
pci.c NVMe: Unbind driver on failure 2016-05-17 17:14:21 -06:00
scsi.c nvme: move chardev and sysfs interface to common code 2015-12-01 10:59:40 -07:00