linux/drivers/nvme/host
Scott Bauer cf39a6bc34 nvme: ensure forward progress during Admin passthru
If the controller supports effects and goes down during the passthru admin
command we will deadlock during namespace revalidation.

[  363.488275] INFO: task kworker/u16:5:231 blocked for more than 120 seconds.
[  363.488290]       Not tainted 4.17.0+ #2
[  363.488296] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  363.488303] kworker/u16:5   D    0   231      2 0x80000000
[  363.488331] Workqueue: nvme-reset-wq nvme_reset_work [nvme]
[  363.488338] Call Trace:
[  363.488385]  schedule+0x75/0x190
[  363.488396]  rwsem_down_read_failed+0x1c3/0x2f0
[  363.488481]  call_rwsem_down_read_failed+0x14/0x30
[  363.488504]  down_read+0x1d/0x80
[  363.488523]  nvme_stop_queues+0x1e/0xa0 [nvme_core]
[  363.488536]  nvme_dev_disable+0xae4/0x1620 [nvme]
[  363.488614]  nvme_reset_work+0xd1e/0x49d9 [nvme]
[  363.488911]  process_one_work+0x81a/0x1400
[  363.488934]  worker_thread+0x87/0xe80
[  363.488955]  kthread+0x2db/0x390
[  363.488977]  ret_from_fork+0x35/0x40

Fixes: 84fef62d13 ("nvme: check admin passthru command effects")
Signed-off-by: Scott Bauer <scott.bauer@intel.com>
Reviewed-by: Keith Busch <keith.busch@linux.intel.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2018-07-17 05:46:19 -07:00
..
core.c nvme: ensure forward progress during Admin passthru 2018-07-17 05:46:19 -07:00
fabrics.c nvme-fabrics: fix and refine state checks in __nvmf_check_ready 2018-06-15 11:21:00 +02:00
fabrics.h nvme-fabrics: handle the admin-only case properly in nvmf_check_ready 2018-06-15 11:21:00 +02:00
fault_inject.c nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
fc.c nvme-fc: release io queues to allow fast fail 2018-06-21 09:31:28 +02:00
Kconfig IB: Revert "remove redundant INFINIBAND kconfig dependencies" 2018-05-28 10:40:16 -06:00
lightnvm.c lightnvm: remove function name in strings 2018-03-29 17:29:09 -06:00
Makefile nvme: Add fault injection feature 2018-03-26 08:53:43 -06:00
multipath.c nvme: add bio remapping tracepoint 2018-06-11 16:17:46 +02:00
nvme.h nvme-pci: limit max IO size and segments to avoid high order allocations 2018-06-21 18:59:46 +02:00
pci.c nvme-pci: fix memory leak on probe failure 2018-07-12 08:23:56 +02:00
rdma.c nvme-rdma: fix possible double free of controller async event buffer 2018-06-28 16:29:54 +02:00
trace.c nvme: add tracepoint for nvme_setup_cmd 2018-01-26 12:34:40 +01:00
trace.h nvme: change order of qid and cmdid in completion trace 2018-04-26 13:30:08 -06:00