linux/drivers
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
..
accessibility
acpi Merge branches 'acpi-pci', 'acpi-misc' and 'acpi-tools' 2016-05-16 16:45:48 +02:00
amba
android
ata ata: add AMD Seattle platform driver 2016-04-13 15:14:24 -04:00
atm Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2016-03-17 21:38:27 -07:00
auxdisplay
base Generic device properties framework update for v4.7-rc1 2016-05-16 19:51:04 -07:00
bcma bcma: fix building without OF_IRQ 2016-03-23 17:52:10 +02:00
block Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
bluetooth Bluetooth: btmrvl_sdio: fix firmware activation failure 2016-03-10 19:51:29 +01:00
bus mvebu fixes for 4.6 (part 1) 2016-04-12 12:35:07 -07:00
cdrom
char Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2016-05-17 09:33:39 -07:00
clk The i.MX clock fixes for 4.6: 2016-04-15 15:40:49 -07:00
clocksource Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-17 09:49:28 -07:00
connector
cpufreq Power management material for v4.7-rc1 2016-05-16 19:17:22 -07:00
cpuidle Merge back new cpuidle material for v4.7. 2016-05-06 22:08:46 +02:00
crypto crypto: qat - change the adf_ctl_stop_devices to void 2016-05-13 17:30:18 +08:00
dca
devfreq PM / devfreq: style/typo fixes 2016-05-03 11:22:10 +09:00
dio
dma Merge branch 'fix/edma' into fixes 2016-04-16 22:52:03 +05:30
dma-buf dma-buf: Update docs for SYNC ioctl 2016-03-21 09:26:45 +01:00
edac * Altera Arria10 L2 cache and On-Chip RAM ECC handling. (Thor Thayer) 2016-05-16 18:44:39 -07:00
eisa
extcon extcon: palmas: Drop stray IRQF_EARLY_RESUME flag 2016-04-04 08:32:45 +09:00
firewire IEEE 1394 subsystem patch: 2016-03-25 08:52:25 -07:00
firmware Power management material for v4.7-rc1 2016-05-16 19:17:22 -07:00
fmc
fpga
gpio gpiolib-acpi: Duplicate con_id string when adding it to the crs lookup list 2016-04-30 13:51:59 +02:00
gpu Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 15:15:17 -07:00
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid 2016-05-03 11:06:01 -07:00
hsi
hv Drivers: hv: vmbus: Fix signaling logic in hv_need_to_signal_on_read() 2016-04-30 14:05:44 -07:00
hwmon hwmon: (sch5636) trivial fix of spelling mistake on revision 2016-04-25 07:26:29 -07:00
hwspinlock
hwtracing
i2c i2c: exynos5: Fix possible ABBA deadlock by keeping I2C clock prepared 2016-04-22 15:31:54 +02:00
ide ide-disk: update to using blk_queue_write_cache() 2016-04-12 16:00:39 -06:00
idle intel_idle: add BXT support 2016-04-09 02:17:43 +02:00
iio iio: imu: mpu6050: Fix name/chip_id when using ACPI 2016-05-04 08:44:27 +01:00
infiniband Late 4.6-rc fixes 2016-05-07 08:10:08 -07:00
input Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 15:15:17 -07:00
iommu Linux 4.6-rc6 2016-05-05 08:35:00 +02:00
ipack
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-17 10:27:29 -07:00
isdn mISDN: Fixing missing validation in base_sock_bind() 2016-04-13 23:00:50 -04:00
leds leds: gpio: Support the "panic-indicator" firmware property 2016-05-06 10:26:07 +02:00
lguest Merge branch 'x86/urgent' into x86/asm to pick up dependent fixes 2016-04-13 11:36:44 +02:00
lightnvm lightnvm: reserved space calculation incorrect 2016-05-06 12:51:10 -06:00
macintosh
mailbox Merge branch 'mailbox-devel' of git://git.linaro.org/landing-teams/working/fujitsu/integration 2016-04-14 18:40:47 -07:00
mcb
md Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
media media fixes for v4.6-rc8 2016-05-13 09:34:59 -07:00
memory MTD updates for v4.6 2016-03-24 19:57:15 -07:00
memstick drivers/memstick/host/r592.c: avoid gcc-6 warning 2016-03-25 16:37:42 -07:00
message
mfd device property: don't bother the drivers with struct property_set 2016-04-09 03:10:50 +02:00
misc Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 16:46:03 -07:00
mmc Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
mtd Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
net Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 15:15:17 -07:00
nfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-03-19 10:05:34 -07:00
ntb NTB: Remove _addr functions from ntb_hw_amd 2016-03-26 11:44:33 -04:00
nubus
nvdimm libnvdimm, pfn: fix ARCH=alpha allmodconfig build failure 2016-05-06 10:20:10 -07:00
nvme NVMe: Unbind driver on failure 2016-05-17 17:14:21 -06:00
nvmem nvmem: mxs-ocotp: fix buffer overflow in read 2016-05-02 08:18:01 -07:00
of of, numa: Add NUMA of binding implementation. 2016-04-15 18:06:08 +01:00
oprofile mm, fs: get rid of PAGE_CACHE_* and page_cache_{get,release} macros 2016-04-04 10:41:08 -07:00
parisc PCI changes for the v4.6 merge window: 2016-03-16 14:45:55 -07:00
parport
pci PCI updates for v4.6: 2016-05-10 12:04:40 -07:00
pcmcia pcmcia: db1xxx_ss: fix last irq_to_gpio user 2016-03-29 22:48:53 +02:00
perf perf/arm: Special-case hetereogeneous CPUs 2016-05-05 10:13:59 +02:00
phy phy: rockchip-emmc: should be a child device of the GRF 2016-04-13 18:33:05 +05:30
pinctrl pinctrl: at91-pio4: fix pull-up/down logic 2016-04-29 11:16:19 +02:00
platform Merge branches 'acpi-pci', 'acpi-misc' and 'acpi-tools' 2016-05-16 16:45:48 +02:00
pnp x86, drivers/pnpbios: Replace paravirt_enabled() check with legacy device check 2016-04-22 10:29:05 +02:00
power PM / AVS: rockchip-io: make io-domains a child of the GRF 2016-04-26 19:12:28 +02:00
powercap Power management material for v4.7-rc1 2016-05-16 19:17:22 -07:00
pps
ps3
ptp Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-15 12:13:56 -07:00
pwm Merge remote-tracking branches 'regulator/topic/pwm', 'regulator/topic/qcom-spmi', 'regulator/topic/rk808' and 'regulator/topic/s2mps11' into regulator-next 2016-05-13 14:23:46 +01:00
rapidio rapidio/mport_cdev: fix uapi type definitions 2016-05-05 17:38:53 -07:00
ras
regulator Merge remote-tracking branches 'regulator/topic/tps6524x' and 'regulator/topic/twl' into regulator-next 2016-05-13 14:23:49 +01:00
remoteproc remoteproc: st: fix check of syscon_regmap_lookup_by_phandle() return value 2016-03-28 16:19:00 -07:00
reset
rpmsg
rtc rtc: ds1307: Use irq when available for wakeup-source device 2016-04-21 23:21:00 +02:00
s390 s390/sclp_ctl: fix potential information leak with /dev/sclp 2016-04-27 09:33:39 +02:00
sbus
scsi Merge branch 'for-4.7/drivers' of git://git.kernel.dk/linux-block 2016-05-17 16:03:32 -07:00
sfi
sh
sn
soc Merge branch 'pm-cpuidle' 2016-05-16 14:31:03 +02:00
spi Merge remote-tracking branches 'spi/fix/fsl-dspi', 'spi/fix/omap2-mcspi', 'spi/fix/pxa2xx' and 'spi/fix/ti-qspi' into spi-linus 2016-05-06 18:20:37 +01:00
spmi
ssb
staging Merge branch 'work.preadv2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-05-17 15:05:23 -07:00
target block: kill off q->flush_flags 2016-04-13 13:33:19 -06:00
tc
thermal Thermal / ACPI / video: add INT3406 thermal driver 2016-05-11 02:15:31 +02:00
thunderbolt
tty devpts: more pty driver interface cleanups 2016-04-26 15:47:32 -07:00
uio
usb Revert "USB / PM: Allow USB devices to remain runtime-suspended when sleeping" 2016-05-02 08:44:31 -07:00
uwb
vfio VFIO updates for v4.6-rc1 2016-03-17 13:05:09 -07:00
vhost Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2016-03-22 12:41:14 -07:00
video ACPI material for v4.7-rc1 2016-05-16 19:41:41 -07:00
virt
virtio virtio: Silence uninitialized variable warning 2016-05-01 15:50:08 +03:00
vlynq
vme
w1
watchdog hpwdt: use nmi_panic() when kernel panics in NMI handler 2016-03-22 15:36:02 -07:00
xen Merge branch 'linus' into efi/core, to pick up fixes 2016-05-07 07:00:07 +02:00
zorro
Kconfig
Makefile