In blk_mq_alloc_request_hctx, blk_mq_sched_get_request doesn't get sw context so we don't need to put the context with blk_mq_put_ctx. Unless, we will see preempt counter underflow. Cc: Sagi Grimberg <sagi@xxxxxxxxxxx> Cc: Omar Sandoval <osandov@xxxxxx> Cc: Jens Axboe <axboe@xxxxxx> Signed-off-by: Minchan Kim <minchan@xxxxxxxxxx> --- Maybe, it would be fixed by someone but I have noticed preempt counter undeflow problem a few weeks ago and still see the problem with linux-next. block/blk-mq.c | 1 - 1 file changed, 1 deletion(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index a4546f060e80..a6f3998dc4ee 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -321,7 +321,6 @@ struct request *blk_mq_alloc_request_hctx(struct request_queue *q, int rw, rq = blk_mq_sched_get_request(q, NULL, rw, &alloc_data); - blk_mq_put_ctx(alloc_data.ctx); blk_queue_exit(q); if (!rq) -- 2.7.4