qemu/hw/block
Klaus Jensen 578d914b26 hw/block/nvme: align zoned.zasl with mdts
ZASL (Zone Append Size Limit) is defined exactly like MDTS (Maximum Data
Transfer Size), that is, it is a value in units of the minimum memory
page size (CAP.MPSMIN) and is reported as a power of two.

The 'mdts' nvme device parameter is specified as in the spec, but the
'zoned.append_size_limit' parameter is specified in bytes. This is
suboptimal for a number of reasons:

  1. It is just plain confusing wrt. the definition of mdts.
  2. There is a lot of complexity involved in validating the value; it
     must be a power of two, it should be larger than 4k, if it is zero
     we set it internally to mdts, but still report it as zero.
  3. While "hw/block/nvme: improve invalid zasl value reporting"
     slightly improved the handling of the parameter, the validation is
     still wrong; it does not depend on CC.MPS, it depends on
     CAP.MPSMIN. And we are not even checking that it is actually less
     than or equal to MDTS, which is kinda the *one* condition it must
     satisfy.

Fix this by defining zasl exactly like mdts and checking the one thing
that it must satisfy (that it is less than or equal to mdts). Also,
change the default value from 128KiB to 0 (aka, whatever mdts is).

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
2021-03-09 11:00:57 +01:00
..
dataplane block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
block.c block: make BlockConf size props 32bit and accept size suffixes 2020-06-17 14:53:40 +02:00
cdrom.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ecc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fdc.c hw/block/fdc: Remove the check_media_rate property 2021-02-20 12:36:19 +01:00
hd-geometry.c block: Remove blk_pread_unthrottled() 2019-08-16 10:25:16 +02:00
Kconfig hw/block: Introduce TC58128 eeprom Kconfig entry 2021-03-06 16:18:42 +01:00
m25p80.c hw/block: m25p80: Add various ISSI flash information 2021-03-04 09:43:29 -05:00
meson.build hw/block/nvme: introduce nvme-subsys device 2021-03-09 11:00:55 +01:00
nand.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
nvme-ns.c hw/block/nvme: add missing mor/mar constraint checks 2021-03-09 11:00:57 +01:00
nvme-ns.h hw/block/nvme: add simple copy command 2021-03-09 11:00:57 +01:00
nvme-subsys.c hw/block/nvme: support for shared namespace in subsystem 2021-03-09 11:00:57 +01:00
nvme-subsys.h hw/block/nvme: support for shared namespace in subsystem 2021-03-09 11:00:57 +01:00
nvme.c hw/block/nvme: align zoned.zasl with mdts 2021-03-09 11:00:57 +01:00
nvme.h hw/block/nvme: align zoned.zasl with mdts 2021-03-09 11:00:57 +01:00
onenand.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
pflash_cfi01.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
pflash_cfi02.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
swim.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
tc58128.c hw/sh4: Add missing license 2021-03-06 16:18:42 +01:00
trace-events hw/block/nvme: align zoned.zasl with mdts 2021-03-09 11:00:57 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user-blk.c qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
virtio-blk.c block: Separate blk_is_writable() and blk_supports_write_perm() 2021-01-27 20:45:20 +01:00
xen_blkif.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00
xen-block.c xen-block: fix reporting of discard feature 2021-02-15 15:10:14 +01:00