aboutsummaryrefslogtreecommitdiff
path: root/include/block
diff options
context:
space:
mode:
authorGollu Appalanaidu <anaidu.gollu@samsung.com>2020-10-19 12:41:31 +0530
committerKlaus Jensen <k.jensen@samsung.com>2020-10-27 11:29:25 +0100
commit28fee5b5d02d59a2b039c71a0a72292b1bc7f75b (patch)
tree5c905de76cc0640f0c76724d540347d835f1dc7b /include/block
parentb865cabf735be793789ad2c7eac97f47a1325966 (diff)
downloadqemu-28fee5b5d02d59a2b039c71a0a72292b1bc7f75b.zip
qemu-28fee5b5d02d59a2b039c71a0a72292b1bc7f75b.tar.gz
qemu-28fee5b5d02d59a2b039c71a0a72292b1bc7f75b.tar.bz2
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 6de2d5a..8a46d9c 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,