Re: [PATCH] mmc: sdhci-pxav2: add error handling of clk_prepare_enable()

From: Adrian Hunter
Date: Tue Feb 28 2017 - 07:09:35 EST


On 11/02/17 00:54, Alexey Khoroshilov wrote:
> There is no check if clk_prepare_enable() succeed in sdhci_pxav2_probe().
>
> Found by Linux Driver Verification project (linuxtesting.org).
>
> Signed-off-by: Alexey Khoroshilov <khoroshilov@xxxxxxxxx>

Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>

> ---
> drivers/mmc/host/sdhci-pxav2.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c
> index 347eae2d7b6a..80513f54e9d4 100644
> --- a/drivers/mmc/host/sdhci-pxav2.c
> +++ b/drivers/mmc/host/sdhci-pxav2.c
> @@ -185,7 +185,11 @@ static int sdhci_pxav2_probe(struct platform_device *pdev)
> goto err_clk_get;
> }
> pltfm_host->clk = clk;
> - clk_prepare_enable(clk);
> + ret = clk_prepare_enable(clk);
> + if (ret) {
> + dev_err(&pdev->dev, "failed to enable io clock\n");
> + goto err_clk_enable;
> + }
>
> host->quirks = SDHCI_QUIRK_BROKEN_ADMA
> | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL
> @@ -228,6 +232,7 @@ static int sdhci_pxav2_probe(struct platform_device *pdev)
>
> err_add_host:
> clk_disable_unprepare(clk);
> +err_clk_enable:
> clk_put(clk);
> err_clk_get:
> sdhci_pltfm_free(pdev);
>