diff options
author | Gollu Appalanaidu | 2021-02-21 19:39:36 +0100 |
---|---|---|
committer | Klaus Jensen | 2021-03-09 11:00:57 +0100 |
commit | 67ce28a1fdcf73e2c026dbc43bb8fb6dc9a56aed (patch) | |
tree | 1815efe22696f8ec46b8379bd791c106a749a006 /include | |
parent | hw/block/nvme: add trace event for zone read check (diff) | |
download | qemu-67ce28a1fdcf73e2c026dbc43bb8fb6dc9a56aed.tar.gz qemu-67ce28a1fdcf73e2c026dbc43bb8fb6dc9a56aed.tar.xz qemu-67ce28a1fdcf73e2c026dbc43bb8fb6dc9a56aed.zip |
hw/block/nvme: report non-mdts command size limit for dsm
Dataset Management is not subject to MDTS, but exceeded a certain size
per range causes internal looping. Report this limit (DMRSL) in the NVM
command set specific identify controller data structure.
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')
-rw-r--r-- | include/block/nvme.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/include/block/nvme.h b/include/block/nvme.h index b23f3ae227..16d8c4c90f 100644 --- a/include/block/nvme.h +++ b/include/block/nvme.h @@ -1041,6 +1041,16 @@ typedef struct NvmeIdCtrlZoned { uint8_t rsvd1[4095]; } NvmeIdCtrlZoned; +typedef struct NvmeIdCtrlNvm { + uint8_t vsl; + uint8_t wzsl; + uint8_t wusl; + uint8_t dmrl; + uint32_t dmrsl; + uint64_t dmsl; + uint8_t rsvd16[4080]; +} NvmeIdCtrlNvm; + enum NvmeIdCtrlOacs { NVME_OACS_SECURITY = 1 << 0, NVME_OACS_FORMAT = 1 << 1, @@ -1396,6 +1406,7 @@ static inline void _nvme_check_size(void) QEMU_BUILD_BUG_ON(sizeof(NvmeEffectsLog) != 4096); QEMU_BUILD_BUG_ON(sizeof(NvmeIdCtrl) != 4096); QEMU_BUILD_BUG_ON(sizeof(NvmeIdCtrlZoned) != 4096); + QEMU_BUILD_BUG_ON(sizeof(NvmeIdCtrlNvm) != 4096); QEMU_BUILD_BUG_ON(sizeof(NvmeLBAF) != 4); QEMU_BUILD_BUG_ON(sizeof(NvmeLBAFE) != 16); QEMU_BUILD_BUG_ON(sizeof(NvmeIdNs) != 4096); |