summaryrefslogtreecommitdiffstats
path: root/include/block
diff options
context:
space:
mode:
authorGollu Appalanaidu2020-10-19 09:11:31 +0200
committerKlaus Jensen2020-10-27 11:29:25 +0100
commit28fee5b5d02d59a2b039c71a0a72292b1bc7f75b (patch)
tree5c905de76cc0640f0c76724d540347d835f1dc7b /include/block
parenthw/block/nvme: report actual LBA data shift in LBAF (diff)
downloadqemu-28fee5b5d02d59a2b039c71a0a72292b1bc7f75b.tar.gz
qemu-28fee5b5d02d59a2b039c71a0a72292b1bc7f75b.tar.xz
qemu-28fee5b5d02d59a2b039c71a0a72292b1bc7f75b.zip
hw/block/nvme: fix prp mapping status codes
Address 0 is not an invalid address. Remove those invalikd checks. Unaligned PRP2 and PRP list entries should result in Invalid PRP Offset status code and not Invalid Field. Fix that. See NVMe Express v1.3d, Section 4.3 ("Physical Region Page Entry and List"). Suggested-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Gollu Appalanaidu <anaidu.gollu@samsung.com> Signed-off-by: Klaus Jensen <k.jensen@samsung.com> Reviewed-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'include/block')
-rw-r--r--include/block/nvme.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/block/nvme.h b/include/block/nvme.h
index 6de2d5aa75..8a46d9cf01 100644
--- a/include/block/nvme.h
+++ b/include/block/nvme.h
@@ -655,6 +655,7 @@ enum NvmeStatusCodes {
NVME_MD_SGL_LEN_INVALID = 0x0010,
NVME_SGL_DESCR_TYPE_INVALID = 0x0011,
NVME_INVALID_USE_OF_CMB = 0x0012,
+ NVME_INVALID_PRP_OFFSET = 0x0013,
NVME_LBA_RANGE = 0x0080,
NVME_CAP_EXCEEDED = 0x0081,
NVME_NS_NOT_READY = 0x0082,