diff options
author | Klaus Jensen | 2019-10-11 08:32:00 +0200 |
---|---|---|
committer | Klaus Jensen | 2020-10-27 07:24:46 +0100 |
commit | 94cbcf530f9d9789b75ef1ae227ba4a4f702bf7d (patch) | |
tree | 3727b9a0229d96a132ccab13e05644ebe036b5ec /hw/block/trace-events | |
parent | pci: pass along the return value of dma_memory_rw (diff) | |
download | qemu-94cbcf530f9d9789b75ef1ae227ba4a4f702bf7d.tar.gz qemu-94cbcf530f9d9789b75ef1ae227ba4a4f702bf7d.tar.xz qemu-94cbcf530f9d9789b75ef1ae227ba4a4f702bf7d.zip |
hw/block/nvme: handle dma errors
Handling DMA errors gracefully is required for the device to pass the
block/011 test ("disable PCI device while doing I/O") in the blktests
suite.
With this patch the device sets the Controller Fatal Status bit in the
CSTS register when failing to read from a submission queue or writing to
a completion queue; expecting the host to reset the controller.
If DMA errors occur at any other point in the execution of the command
(say, while mapping the PRPs), the command is aborted with a Data
Transfer Error status code.
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'hw/block/trace-events')
-rw-r--r-- | hw/block/trace-events | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/block/trace-events b/hw/block/trace-events index 8ff4cbc493..5589db4a01 100644 --- a/hw/block/trace-events +++ b/hw/block/trace-events @@ -86,6 +86,9 @@ pci_nvme_mmio_shutdown_cleared(void) "shutdown bit cleared" # nvme traces for error conditions pci_nvme_err_mdts(uint16_t cid, size_t len) "cid %"PRIu16" len %zu" +pci_nvme_err_addr_read(uint64_t addr) "addr 0x%"PRIx64"" +pci_nvme_err_addr_write(uint64_t addr) "addr 0x%"PRIx64"" +pci_nvme_err_cfs(void) "controller fatal status" pci_nvme_err_invalid_dma(void) "PRP/SGL is too small for transfer size" pci_nvme_err_invalid_prplist_ent(uint64_t prplist) "PRP list entry is null or not page aligned: 0x%"PRIx64"" pci_nvme_err_invalid_prp2_align(uint64_t prp2) "PRP2 is not page aligned: 0x%"PRIx64"" |