mmc: core: Fix tag set memory leak
authorRaul E Rangel <rrangel@chromium.org>
Thu, 2 May 2019 19:07:14 +0000 (13:07 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 May 2019 05:37:37 +0000 (07:37 +0200)
commit 43d8dabb4074cf7f3b1404bfbaeba5aa6f3e5cfc upstream.

The tag set is allocated in mmc_init_queue but never freed. This results
in a memory leak. This change makes sure we free the tag set when the
queue is also freed.

Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Fixes: 81196976ed94 ("mmc: block: Add blk-mq support")
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/core/queue.c

index 6edffee..18aae28 100644 (file)
@@ -494,6 +494,7 @@ void mmc_cleanup_queue(struct mmc_queue *mq)
                blk_mq_unquiesce_queue(q);
 
        blk_cleanup_queue(q);
+       blk_mq_free_tag_set(&mq->tag_set);
 
        /*
         * A request can be completed before the next request, potentially