Not sure I understand.
max_segment_size and virt_boundary_mask are related how?
virt_boundary_devices has hardware segment size of a single page (device
page as identified by the boundary, not necessarily linux PAGE_SIZE).
So we don't need a max_segment_size in the Linux size, as any amount of
hardware segments fitting the virt boundary can be merged into a 'Linux
segment'. Because of the accouting for the merges is hard and was
partially broken anyway we've now dropped the accounting and force the
max_segment_size to be unlimited in the block layer if a device sets
the virt_boundary_mask.
OK, want me to respin? or you want to wait to see if you have a v2 and
fold it in if you do?