From: Jens Axboe Date: Mon, 1 Nov 2021 12:56:09 +0000 (-0600) Subject: block: assign correct tag before doing prefetch of request X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a22c00be90de188d36f4772ef7b268aa48d7010d;p=linux.git block: assign correct tag before doing prefetch of request Ensure that current tag is correctly assigned before attempting to prefetch the first cacheline of the request. Fixes: 92aff191cc5b ("block: prefetch request to be initialized") Reported-and-tested-by: syzbot+cd20829ac44b92bf6ed0@syzkaller.appspotmail.com Signed-off-by: Jens Axboe --- diff --git a/block/blk-mq.c b/block/blk-mq.c index 221d1b7d10d66..4787d5b74aa3c 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -405,8 +405,8 @@ __blk_mq_alloc_requests_batch(struct blk_mq_alloc_data *data, for (i = 0; tag_mask; i++) { if (!(tag_mask & (1UL << i))) continue; - prefetch(tags->static_rqs[tag]); tag = tag_offset + i; + prefetch(tags->static_rqs[tag]); tag_mask &= ~(1UL << i); rq = blk_mq_rq_ctx_init(data, tags, tag, alloc_time_ns); rq_list_add(data->cached_rq, rq);