Re: [PATCH v3 0/5] Improve checks in blk_revalidate_disk_zones()

Martin K. Petersen
2023-07-11T16:32:14Z

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