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. Such as: 1) blk_validate_limits() - failure if max_segment_size is less than 64K - max_user_sectors if (lim->max_user_sectors < PAGE_SIZE / SECTOR_SIZE) return -EINVAL; 2) bio_may_need_split() - max_segment_size may be less than 64K Thanks,