linux/include
James Smart a123233fc3 nvme_fc: add module to ops template to allow module references
[ Upstream commit 863fbae929 ]

In nvme-fc: it's possible to have connected active controllers
and as no references are taken on the LLDD, the LLDD can be
unloaded.  The controller would enter a reconnect state and as
long as the LLDD resumed within the reconnect timeout, the
controller would resume.  But if a namespace on the controller
is the root device, allowing the driver to unload can be problematic.
To reload the driver, it may require new io to the boot device,
and as it's no longer connected we get into a catch-22 that
eventually fails, and the system locks up.

Fix this issue by taking a module reference for every connected
controller (which is what the core layer did to the transport
module). Reference is cleared when the controller is removed.

Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-09 10:17:50 +01:00
..
acpi ACPICA: Reference Counts: increase max to 0x4000 for large servers 2019-03-19 13:13:21 +01:00
asm-generic asm-generic: fix -Wtype-limits compiler warnings 2019-08-25 10:50:18 +02:00
clocksource License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
crypto crypto: vmac - separate tfm and request context 2018-08-17 21:01:10 +02:00
drm drm: mst: Fix query_payload ack reply struct 2019-12-31 12:36:46 +01:00
dt-bindings clk: rockchip: fix ID of 8ch clock of I2S1 for rk3328 2019-12-17 20:37:58 +01:00
keys keys: Fix dependency loop between construction record and auth key 2019-03-23 14:35:14 +01:00
kvm KVM: arm/arm64: Sync ICH_VMCR_EL2 back when about to block 2019-08-25 10:50:18 +02:00
linux nvme_fc: add module to ops template to allow module references 2020-01-09 10:17:50 +01:00
math-emu math-emu/soft-fp.h: (_FP_ROUND_ZERO) cast 0 to void to fix warning 2019-12-17 20:38:02 +01:00
media media: cec: make cec_get_edid_spa_location() an inline function 2019-05-16 19:42:26 +02:00
memory
misc
net tcp/dccp: fix possible race __inet_lookup_established() 2020-01-04 14:00:19 +01:00
pcmcia
ras License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rdma IB/mlx4: Avoid implicit enumerated type conversion 2019-11-24 08:23:05 +01:00
scsi scsi: target: iscsi: Wait for all commands to finish before freeing a session 2020-01-04 13:59:49 +01:00
soc memory: tegra: Apply interrupts mask per SoC 2018-08-03 07:50:38 +02:00
sound ASoC: Define a set of DAPM pre/post-up events 2019-10-11 18:18:30 +02:00
target target: Avoid early CMD_T_PRE_EXECUTE failures during ABORT_TASK 2017-11-30 08:40:51 +00:00
trace block: Fix writeback throttling W=1 compiler warnings 2019-12-31 12:37:01 +01:00
uapi media: cec-funcs.h: add status_req checks 2019-12-31 12:36:59 +01:00
video udlfb: set optimal write delay 2018-09-09 19:56:01 +02:00
xen xen/events: fix binding user event channels to cpus 2019-07-31 07:28:39 +02:00