[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPDyKFqsNpgGiDEH42Mo_fJ3jGjSO+y3tP45DpJA7vH-696yYg@mail.gmail.com>
Date: Wed, 18 Dec 2019 15:01:09 +0100
From: Ulf Hansson <ulf.hansson@...aro.org>
To: Chuhong Yuan <hslester96@...il.com>
Cc: Jan Glauber <jglauber@...ium.com>,
David Daney <david.daney@...ium.com>,
"Steven J . Hill" <Steven.Hill@...ium.com>,
"linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] mmc: cavium: Add missed pci_release_regions
On Fri, 6 Dec 2019 at 08:54, Chuhong Yuan <hslester96@...il.com> wrote:
>
> The driver forgets to call pci_release_regions() in probe failure
> and remove.
> Add the missed calls to fix it.
>
> Signed-off-by: Chuhong Yuan <hslester96@...il.com>
Applied for next, thanks!
Kind regards
Uffe
> ---
> drivers/mmc/host/cavium-thunderx.c | 16 +++++++++++-----
> 1 file changed, 11 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/mmc/host/cavium-thunderx.c b/drivers/mmc/host/cavium-thunderx.c
> index eee08d81b242..76013bbbcff3 100644
> --- a/drivers/mmc/host/cavium-thunderx.c
> +++ b/drivers/mmc/host/cavium-thunderx.c
> @@ -76,8 +76,10 @@ static int thunder_mmc_probe(struct pci_dev *pdev,
> return ret;
>
> host->base = pcim_iomap(pdev, 0, pci_resource_len(pdev, 0));
> - if (!host->base)
> - return -EINVAL;
> + if (!host->base) {
> + ret = -EINVAL;
> + goto error;
> + }
>
> /* On ThunderX these are identical */
> host->dma_base = host->base;
> @@ -86,12 +88,14 @@ static int thunder_mmc_probe(struct pci_dev *pdev,
> host->reg_off_dma = 0x160;
>
> host->clk = devm_clk_get(dev, NULL);
> - if (IS_ERR(host->clk))
> - return PTR_ERR(host->clk);
> + if (IS_ERR(host->clk)) {
> + ret = PTR_ERR(host->clk);
> + goto error;
> + }
>
> ret = clk_prepare_enable(host->clk);
> if (ret)
> - return ret;
> + goto error;
> host->sys_freq = clk_get_rate(host->clk);
>
> spin_lock_init(&host->irq_handler_lock);
> @@ -157,6 +161,7 @@ static int thunder_mmc_probe(struct pci_dev *pdev,
> }
> }
> clk_disable_unprepare(host->clk);
> + pci_release_regions(pdev);
> return ret;
> }
>
> @@ -175,6 +180,7 @@ static void thunder_mmc_remove(struct pci_dev *pdev)
> writeq(dma_cfg, host->dma_base + MIO_EMM_DMA_CFG(host));
>
> clk_disable_unprepare(host->clk);
> + pci_release_regions(pdev);
> }
>
> static const struct pci_device_id thunder_mmc_id_table[] = {
> --
> 2.24.0
>
Powered by blists - more mailing lists