On Fri, Mar 22, 2024 at 10:08:11AM +0800, Ming Lei wrote: > On Thu, Mar 21, 2024 at 06:01:41PM +0100, Mikulas Patocka wrote: > > I would change it to > > > > if (unlikely(((bi_iter.bi_sector | bio_sectors(bio)) & ((queue_logical_block_size(q) >> 9) - 1)) != 0)) > > return false; > > What if bio->bi_iter.bi_size isn't aligned with 512? The above check > can't find that at all. Shouldn't that mean this check doesn't apply to REQ_OP_DRV_IN/OUT? Those ops don't necessarily imply any alignment requirements. It may not matter here since it looks like all existing users go through blk_execute_rq() instead of submit_bio(), but there are other checks for DRV_IN/OUT in this path, so I guess it is supposed to be supported?