diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index 0c55824a449b..c894f64c2e38 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -461,7 +461,6 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp) } err = mmc_get_ext_csd(card, &ext_csd); - mmc_put_card(card); if (err) goto out_free; @@ -478,6 +477,7 @@ static int mmc_ext_csd_open(struct inode *inode, struct file *filp) mmc_hostname(card->host), __func__); } + mmc_put_card(card); kfree(ext_csd); return 0; @@ -487,6 +487,7 @@ out_free: pr_err("%s: %s: cmdq unhalt failed\n", mmc_hostname(card->host), __func__); } + mmc_put_card(card); out_free_halt: kfree(buf); return err;