linux/drivers/nvme/host
Michael Kelley 2c61c97fb1 nvme: handle the persistent internal error AER
In the NVM Express Revision 1.4 spec, Figure 145 describes possible
values for an AER with event type "Error" (value 000b). For a
Persistent Internal Error (value 03h), the host should perform a
controller reset.

Add support for this error using code that already exists for
doing a controller reset. As part of this support, introduce
two utility functions for parsing the AER type and subtype.

This new support was tested in a lab environment where we can
generate the persistent internal error on demand, and observe
both the Linux side and NVMe controller side to see that the
controller reset has been done.

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-08-02 17:14:47 -06:00
..
apple.c blk-mq: Drop blk_mq_ops.timeout 'reserved' arg 2022-07-06 06:33:53 -06:00
constants.c nvme: add support for TP4084 - Time-to-Ready Enhancements 2022-05-18 18:54:17 +02:00
core.c nvme: handle the persistent internal error AER 2022-08-02 17:14:47 -06:00
fabrics.c nvme-fabrics: remove unnecessary braces for case 2022-02-28 13:45:04 +02:00
fabrics.h nvme-fabrics: add a request timeout helper 2022-05-16 08:07:25 +02:00
fault_inject.c block: remove the ->rq_disk field in struct request 2021-11-29 06:41:29 -07:00
fc.c blk-mq: Drop 'reserved' arg of busy_tag_iter_fn 2022-07-06 06:33:53 -06:00
fc.h nvme-fc: Update header and host for common definitions for LS handling 2020-05-09 16:18:33 -06:00
hwmon.c nvme-hwmon: Return error code when registration fails 2021-03-05 13:41:03 +01:00
ioctl.c nvme/host: Use the enum req_op and blk_opf_t types 2022-07-14 12:14:32 -06:00
Kconfig nvme-apple: Add initial Apple SoC NVMe driver 2022-05-02 17:24:45 +02:00
Makefile nvme-apple: Add initial Apple SoC NVMe driver 2022-05-02 17:24:45 +02:00
multipath.c block: move zone related fields to struct gendisk 2022-07-06 06:46:26 -06:00
nvme.h nvme: remove a double word in a comment 2022-08-02 17:14:47 -06:00
pci.c for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
rdma.c for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
tcp.c for-5.20/block-2022-07-29 2022-08-02 13:46:35 -07:00
trace.c nvme: add set feature tracing support 2021-08-16 14:42:23 +02:00
trace.h nvme: use struct group for generic command dwords 2022-07-06 19:12:56 +02:00
zns.c block: pass a gendisk to blk_queue_max_open_zones and blk_queue_max_active_zones 2022-07-06 06:46:26 -06:00