linux_dsm_epyc7002/drivers/nvme/host
James Smart 61bff8ef00 nvme_fc: add controller reset support
This patch actually does quite a few things.  When looking to add
controller reset support, the organization modeled after rdma was
very fragmented. rdma duplicates the reset and teardown paths and does
different things to the block layer on the two paths. The code to build
up the controller is also duplicated between the initial creation and
the reset/error recovery paths. So I decided to make this sane.

I reorganized the controller creation and teardown so that there is a
connect path and a disconnect path.  Initial creation obviously uses
the connect path.  Controller teardown will use the disconnect path,
followed last access code. Controller reset will use the disconnect
path to stop operation, and then the connect path to re-establish
the controller.

Along the way, several things were fixed
- aens were not properly set up. They are allocated differently from
  the per-request structure on the blk queues.
- aens were oddly torn down. the prior patch corrected to abort, but
  we still need to dma unmap and free relative elements.
- missed a few ref counting points: in aen completion and on i/o's
  that fail
- controller initial create failure paths were still confused vs teardown
  before converting to ref counting vs after we convert to refcounting.

Signed-off-by: James Smart <james.smart@broadcom.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
2017-04-24 09:16:29 +02:00
..
core.c nvme: let dm-mpath distinguish nvme error codes 2017-04-21 16:41:56 +02:00
fabrics.c nvme-fabrics: Allow ctrl loss timeout configuration 2017-04-04 09:48:23 -06:00
fabrics.h nvme-fabrics: Allow ctrl loss timeout configuration 2017-04-04 09:48:23 -06:00
fc.c nvme_fc: add controller reset support 2017-04-24 09:16:29 +02:00
Kconfig nvme-fabrics: Add host support for FC transport 2016-12-06 10:17:56 +02:00
lightnvm.c nvme: make nvme_error_status private 2017-04-20 12:16:10 -06:00
Makefile nvme-fabrics: Add host support for FC transport 2016-12-06 10:17:56 +02:00
nvme.h blk-mq: remove the error argument to blk_mq_complete_request 2017-04-20 12:16:10 -06:00
pci.c nvme/pci: Poll CQ on timeout 2017-04-21 16:41:55 +02:00
rdma.c nvme: split nvme status from block req->errors 2017-04-20 12:16:10 -06:00
scsi.c nvme/scsi: don't rely on BLK_MAX_CDB 2017-01-30 08:33:51 -07:00