On Tue, Jun 17, 2025 at 12:05:09AM +0800, Ming Lei wrote: > Set max_segment_size as UINT_MAX explicitly: > > - storvrc uses virt_boundary to define `segment` > > - strovrc does not define max_segment_size > > So define max_segment_size as UINT_MAX, otherwise __blk_rq_map_sg() takes > default 64K max segment size and splits one virtual segment into two parts, > then breaks virt_boundary limit. > > Before commit ec84ca4025c0 ("scsi: block: Remove now unused queue limits helpers"), > max segment size is set as UINT_MAX in case that virt_boundary is > defined. Drivers should not have done this. If you need this someone (probably me) broke the block layer code ensuring it's not needed, and that affects all drivers using virt_boundary.