block: use blk_free_flush_queue() to free hctx->fq in blk_mq_init_hctx
authorShenghui Wang <shhuiw@foxmail.com>
Mon, 1 Apr 2019 13:40:36 +0000 (21:40 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 May 2019 05:22:52 +0000 (07:22 +0200)
[ Upstream commit b9a1ff504b9492ad6beb7d5606e0e3365d4d8499 ]

kfree() can leak the hctx->fq->flush_rq field.

Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Shenghui Wang <shhuiw@foxmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org>
block/blk-mq.c

index 16f9675c57e66ef2e916021b8ebc67bee7a00968..97eba6d234251212913260b16707362d40589030 100644 (file)
@@ -2341,7 +2341,7 @@ static int blk_mq_init_hctx(struct request_queue *q,
        return 0;
 
  free_fq:
-       kfree(hctx->fq);
+       blk_free_flush_queue(hctx->fq);
  exit_hctx:
        if (set->ops->exit_hctx)
                set->ops->exit_hctx(hctx, hctx_idx);