On Mon, 03 Jul 2023 11:48:07 +0900, Damien Le Moal wrote: > blk_revalidate_disk_zones() implements checks of the zones of a zoned > block device, verifying that the zone size is a power of 2 number of > sectors, that all zones (except possibly the last one) have the same > size and that zones cover the entire addressing space of the device. > > While these checks are appropriate to verify that well tested hardware > devices have an adequate zone configurations, they lack in certain areas > which may result in issues with potentially buggy emulated devices > implemented with user drivers such as ublk or tcmu. Specifically, this > function does not check if the device driver indicated support for the > mandatory zone append writes, that is, if the device > max_zone_append_sectors queue limit is set to a non-zero value. > Additionally, invalid zones such as a zero length zone with a start > sector equal to the device capacity will not be detected and result in > out of bounds use of the zone bitmaps prepared with the callback > function blk_revalidate_zone_cb(). > > [...] Applied to 6.5/scsi-fixes, thanks! [1/5] scsi: sd_zbc: Set zone limits before revalidating zones https://git.kernel.org/mkp/scsi/c/f79846ca2f04 [2/5] nvme: zns: Set zone limits before revalidating zones https://git.kernel.org/mkp/scsi/c/d226b0a2b683 [3/5] block: nullblk: Set zone limits before revalidating zones https://git.kernel.org/mkp/scsi/c/a442b899fe17 [4/5] block: virtio_blk: Set zone limits before revalidating zones https://git.kernel.org/mkp/scsi/c/a3d96ed21507 [5/5] block: improve checks in blk_revalidate_disk_zones() https://git.kernel.org/mkp/scsi/c/03e51c4a74b9 -- Martin K. Petersen Oracle Linux Engineering