| From c1b25b9ef43a427ef86a66cb460b8a881a202e76 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 26 Apr 2020 22:23:55 +0200 |
| Subject: mmc: alcor: Fix a resource leak in the error path for ->probe() |
| |
| From: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| |
| [ Upstream commit 7c277dd2b0ff6a16f1732a66c2c52a29f067163e ] |
| |
| If devm_request_threaded_irq() fails, the allocated struct mmc_host needs |
| to be freed via calling mmc_free_host(), so let's do that. |
| |
| Fixes: c5413ad815a6 ("mmc: add new Alcor Micro Cardreader SD/MMC driver") |
| Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> |
| Link: https://lore.kernel.org/r/20200426202355.43055-1-christophe.jaillet@wanadoo.fr |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/mmc/host/alcor.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/mmc/host/alcor.c b/drivers/mmc/host/alcor.c |
| index 1aee485d56d4c..026ca9194ce5b 100644 |
| --- a/drivers/mmc/host/alcor.c |
| +++ b/drivers/mmc/host/alcor.c |
| @@ -1104,7 +1104,7 @@ static int alcor_pci_sdmmc_drv_probe(struct platform_device *pdev) |
| |
| if (ret) { |
| dev_err(&pdev->dev, "Failed to get irq for data line\n"); |
| - return ret; |
| + goto free_host; |
| } |
| |
| mutex_init(&host->cmd_mutex); |
| @@ -1116,6 +1116,10 @@ static int alcor_pci_sdmmc_drv_probe(struct platform_device *pdev) |
| dev_set_drvdata(&pdev->dev, host); |
| mmc_add_host(mmc); |
| return 0; |
| + |
| +free_host: |
| + mmc_free_host(mmc); |
| + return ret; |
| } |
| |
| static int alcor_pci_sdmmc_drv_remove(struct platform_device *pdev) |
| -- |
| 2.20.1 |
| |