The block layer has been carrying around a magic clustering flag, which is an artefact of prehistoric scsi layer design decisions. Originally it controller if any segment merging happens at all for a given LLLD, but with merging moving to the block layer and massively more complex now it now essentically means that no segment shall be larger than a page, and no segment shall cross a page boundary if clustering is not enabled. Unfortunately the SCSI layer historically defaults to disabled clustering, but fortunately most drivers actually enable it, and very few drivers do not set an explicit flag. So this series first flips the default to be sensible, and then replaces the magic flag with setting an explicit dma boundary and max segment size to reuse the existing mechanisms. It also fixes up a few drivers where the no clustering setting was clearly bogus, although we can probably lift these limits for others as well eventually. Changes since V1: - split a patch into two - collected a few acks - fixed a changelog typo - only set the segment boundary, the max segment size is redundant - don't set dma_boundary twice in two drivers