+Long for reviewing this patch. 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 > Typo here. It should be storvsc, not storvrc. > 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. > > Cc: "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx> > Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx> > Cc: Wei Liu <wei.liu@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Ewan D. Milne <emilne@xxxxxxxxxx> > Cc: Laurence Oberman <loberman@xxxxxxxxxx> > Fixes: ec84ca4025c0 ("scsi: block: Remove now unused queue limits helpers") > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > --- > drivers/scsi/storvsc_drv.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > index 2e6b2412d2c9..1e7ad85f4ba3 100644 > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -1897,6 +1897,7 @@ static struct scsi_host_template scsi_driver = { > .no_write_same = 1, > .track_queue_depth = 1, > .change_queue_depth = storvsc_change_queue_depth, > + .max_segment_size = 0xffffffff, > }; > > enum { > -- > 2.47.0 >