aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorMing Lei <ming.lei@redhat.com>2022-07-19 00:08:51 +0800
committerJens Axboe <axboe@kernel.dk>2022-07-18 13:12:11 -0600
commitbf14fad19ffbb3d37a1bb1324f966973e7d4a7b6 (patch)
tree0bcb3d952a00800e6fde5f26a91231bc40d219eb /drivers/mmc
parentublk_drv: fix an IS_ERR() vs NULL check (diff)
downloadlinux-dev-bf14fad19ffbb3d37a1bb1324f966973e7d4a7b6.tar.xz
linux-dev-bf14fad19ffbb3d37a1bb1324f966973e7d4a7b6.zip
mmc: fix disk/queue leak in case of adding disk failure
In case of adding disk failure, the disk needs to be released, otherwise disk/queue is leaked. Signed-off-by: Ming Lei <ming.lei@redhat.com> Link: https://lore.kernel.org/r/20220718160851.312972-1-ming.lei@redhat.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/core/block.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index bda6c67ce93f..e08e22f0a7c5 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -2505,10 +2505,11 @@ static struct mmc_blk_data *mmc_blk_alloc_req(struct mmc_card *card,
dev_set_drvdata(&card->dev, md);
ret = device_add_disk(md->parent, md->disk, mmc_disk_attr_groups);
if (ret)
- goto err_cleanup_queue;
+ goto err_put_disk;
return md;
- err_cleanup_queue:
+ err_put_disk:
+ put_disk(md->disk);
blk_mq_free_tag_set(&md->queue.tag_set);
err_kfree:
kfree(md);