On Fri, Jun 04, 2021 at 07:58:54PM +0000, Satya Tangirala wrote: > Make blk_crypto_split_bio_if_needed() respect > bio_required_sector_alignment() when calling bio_split(). Without this, > blk-crypto-fallback could possibly split a bio in the middle of a data > unit, and the resulting bios can no longer be encrypted (since encryption > can only be done on complete crypto data units). > > Signed-off-by: Satya Tangirala <satyat@xxxxxxxxxx> > --- > block/blk-crypto-fallback.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/block/blk-crypto-fallback.c b/block/blk-crypto-fallback.c > index c322176a1e09..85c813ef670b 100644 > --- a/block/blk-crypto-fallback.c > +++ b/block/blk-crypto-fallback.c > @@ -19,6 +19,7 @@ > #include <linux/module.h> > #include <linux/random.h> > > +#include "blk.h" > #include "blk-crypto-internal.h" > > static unsigned int num_prealloc_bounce_pg = 32; > @@ -225,6 +226,8 @@ static bool blk_crypto_split_bio_if_needed(struct bio **bio_ptr) > if (num_sectors < bio_sectors(bio)) { > struct bio *split_bio; > > + num_sectors = round_down(num_sectors, > + bio_required_sector_alignment(bio)); > split_bio = bio_split(bio, num_sectors, GFP_NOIO, > &crypto_bio_split); > if (!split_bio) { > -- Reviewed-by: Eric Biggers <ebiggers@xxxxxxxxxx>