Jens, can you take a look? This fixes a boot regression hitting various people. On Wed, Jul 24, 2019 at 06:26:56PM +0200, Christoph Hellwig wrote: > We should only set the max segment size to unlimited if we actually > have a virt boundary. Otherwise we accidentally clear that limit > when called from the SCSI midlayer, which always calls > blk_queue_virt_boundary, even if that mask is 0. > > Fixes: 7ad388d8e4c7 ("scsi: core: add a host / host template field for the virt boundary") > Reported-by: Guenter Roeck <linux@xxxxxxxxxxxx> > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > block/blk-settings.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/block/blk-settings.c b/block/blk-settings.c > index 2ae348c101a0..2c1831207a8f 100644 > --- a/block/blk-settings.c > +++ b/block/blk-settings.c > @@ -752,7 +752,8 @@ void blk_queue_virt_boundary(struct request_queue *q, unsigned long mask) > * page (which might not be idential to the Linux PAGE_SIZE). Because > * of that they are not limited by our notion of "segment size". > */ > - q->limits.max_segment_size = UINT_MAX; > + if (mask) > + q->limits.max_segment_size = UINT_MAX; > } > EXPORT_SYMBOL(blk_queue_virt_boundary); > > -- > 2.20.1 ---end quoted text---