From: Keith Busch <kbusch@xxxxxxxxxx> The 6.0 kernel made some changes to the direct io interface to allow offsets in user addresses. This based on the hardware's capabilities reported in the request_queue's dma_alignment attribute. dm-crypt requires direct io be aligned to the block size. Since it was only ever using the default 511 dma mask, this requirement may fail if formatted to something larger, like 4k, which will result in unexpected behavior with direct-io. There are two parts to fixing this: First, the attribute needs to be moved to the queue_limit so that it can properly stack with device mappers. Second, dm-crypt provides its minimum required limit to match the logical block size. Keith Busch (3): block: make dma_alignment a stacking queue_limit dm-crypt: provide dma_alignment limit in io_hints block: make blk_set_default_limits() private block/blk-core.c | 1 - block/blk-settings.c | 9 +++++---- block/blk.h | 1 + drivers/md/dm-crypt.c | 1 + include/linux/blkdev.h | 16 ++++++++-------- 5 files changed, 15 insertions(+), 13 deletions(-) -- 2.30.2