diff --git a/block/kyber-iosched.c b/block/kyber-iosched.c index d8f3cb1bffa618f54a63e5b66b741b6577ab597d..833e9eaae640bf74612599ba5230ece52a02af56 100644 --- a/block/kyber-iosched.c +++ b/block/kyber-iosched.c @@ -503,10 +503,12 @@ static void kyber_limit_depth(unsigned int op, struct blk_mq_alloc_data *data) } } -static bool kyber_bio_merge(struct blk_mq_hw_ctx *hctx, struct bio *bio) +static bool kyber_bio_merge(struct blk_mq_hw_ctx *hctx_q, struct bio *bio) { + struct request_queue *q = hctx_q->queue; + struct blk_mq_ctx *ctx = blk_mq_get_ctx(q); + struct blk_mq_hw_ctx *hctx = blk_mq_map_queue(q, ctx->cpu); struct kyber_hctx_data *khd = hctx->sched_data; - struct blk_mq_ctx *ctx = blk_mq_get_ctx(hctx->queue); struct kyber_ctx_queue *kcq = &khd->kcqs[ctx->index_hw]; unsigned int sched_domain = kyber_sched_domain(bio->bi_opf); struct list_head *rq_list = &kcq->rq_list[sched_domain];