On Mon, Dec 16, 2024 at 6:14 PM John Garry <john.g.garry@xxxxxxxxxx> wrote: > > On 16/12/2024 09:19, Ming Lei wrote: > > On Mon, Dec 16, 2024 at 4:58 PM John Garry <john.g.garry@xxxxxxxxxx> wrote: > >> > >> On 14/12/2024 03:10, Luis Chamberlain wrote: > >>> index 167d82b46781..b57dc4bff81b 100644 > >>> --- a/block/bdev.c > >>> +++ b/block/bdev.c > >>> @@ -157,8 +157,7 @@ int set_blocksize(struct file *file, int size) > >>> struct inode *inode = file->f_mapping->host; > >>> struct block_device *bdev = I_BDEV(inode); > >>> > >>> - /* Size must be a power of two, and between 512 and PAGE_SIZE */ > >>> - if (size > PAGE_SIZE || size < 512 || !is_power_of_2(size)) > >>> + if (blk_validate_block_size(size)) > >>> return -EINVAL; > >> > >> I suppose that this can be sent as a separate patch to be merged now. > > > > There have been some bugs found in case that PAGE_SIZE == 64K, and I > > think it is bad to use PAGE_SIZE for validating many hw/queue limits, we might > > have to fix them first. > > I am just suggesting to remove duplicated code, as these checks are same > as blk_validate_block_size() My fault, misunderstood your point as pushing this single patch only. > > > > > Such as: > > Aren't the below list just enforcing block layer requirements? And so > only block drivers need fixing for PAGE_SIZE > 4K (or cannot be used for > PAGE_SIZE > 4K), right? It is block layer which should be fixed to support PAGE_SIZE > 4K. Thanks,