Re: [PATCH] mmc: cavium: Add missed pci_release_regions
From: Ulf Hansson
Date: Wed Dec 18 2019 - 09:01:49 EST
On Fri, 6 Dec 2019 at 08:54, Chuhong Yuan <hslester96@xxxxxxxxx> 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@xxxxxxxxx>
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
>