On 2/01/20 12:42 pm, Michał Mirosław wrote: > sdhci_alloc_host() does its work not using managed infrastructure, so > needs explicit free on error path. Add it where needed. > > Cc: <stable@xxxxxxxxxxxxxxx> > Fixes: bb5f8ea4d514 ("mmc: sdhci-of-at91: introduce driver for the Atmel SDMMC") > Signed-off-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxx> Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > --- > drivers/mmc/host/sdhci-of-at91.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-of-at91.c b/drivers/mmc/host/sdhci-of-at91.c > index b2a8c45c9c23..ab2bd314a390 100644 > --- a/drivers/mmc/host/sdhci-of-at91.c > +++ b/drivers/mmc/host/sdhci-of-at91.c > @@ -345,20 +345,23 @@ static int sdhci_at91_probe(struct platform_device *pdev) > priv->mainck = NULL; > } else { > dev_err(&pdev->dev, "failed to get baseclk\n"); > - return PTR_ERR(priv->mainck); > + ret = PTR_ERR(priv->mainck); > + goto sdhci_pltfm_free; > } > } > > priv->hclock = devm_clk_get(&pdev->dev, "hclock"); > if (IS_ERR(priv->hclock)) { > dev_err(&pdev->dev, "failed to get hclock\n"); > - return PTR_ERR(priv->hclock); > + ret = PTR_ERR(priv->hclock); > + goto sdhci_pltfm_free; > } > > priv->gck = devm_clk_get(&pdev->dev, "multclk"); > if (IS_ERR(priv->gck)) { > dev_err(&pdev->dev, "failed to get multclk\n"); > - return PTR_ERR(priv->gck); > + ret = PTR_ERR(priv->gck); > + goto sdhci_pltfm_free; > } > > ret = sdhci_at91_set_clks_presets(&pdev->dev); >