mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
block: check bio split for unaligned bvec
Offsets and lengths need to be validated against the dma alignment. This check was skipped for sufficiently a small bio with a single bvec, which may allow an invalid request dispatched to the driver. Force the validation for an unaligned bvec by forcing the bio split path that handles this condition. Fixes:7eac331869("iomap: simplify direct io validity check") Fixes:5ff3f74e14("block: simplify direct io validity check") Reported-by: Carlos Maiolino <cem@kernel.org> Signed-off-by: Keith Busch <kbusch@kernel.org> Link: https://patch.msgid.link/20260612223205.465913-1-kbusch@meta.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
d532cddb6c
commit
9b0c3673c8
|
|
@ -408,6 +408,8 @@ static inline bool bio_may_need_split(struct bio *bio,
|
|||
bv = __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter);
|
||||
if (bio->bi_iter.bi_size > bv->bv_len - bio->bi_iter.bi_bvec_done)
|
||||
return true;
|
||||
if ((bv->bv_offset | bv->bv_len) & lim->dma_alignment)
|
||||
return true;
|
||||
return bv->bv_len + bv->bv_offset > lim->max_fast_segment_size;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user