Re: [PATCH] staging: wilc1000: Fix memleak in wilc_sdio_probe

From: Ajay.Kathat
Date: Thu Aug 20 2020 - 01:29:28 EST


Thanks for submitting the patch. The code changes looks okay to me.

The driver is now moved out of staging so 'staging' prefix is not
required in subject. For future patches on wilc driver, the 'staging'
prefix can be removed.

For this patch, I am not sure if Kalle can apply as is otherwise please
submit a patch by removing 'staging' from subject so it can be applied
directly.

Regards,
Ajay

On 19/08/20 5:20 pm, Dinghao Liu wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
> When devm_clk_get() returns -EPROBE_DEFER, sdio_priv
> should be freed just like when wilc_cfg80211_init()
> fails.
>
> Fixes: 8692b047e86cf ("staging: wilc1000: look for rtc_clk clock")
> Signed-off-by: Dinghao Liu <dinghao.liu@xxxxxxxxxx>
> ---
> drivers/net/wireless/microchip/wilc1000/sdio.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c
> index 3ece7b0b0392..351ff909ab1c 100644
> --- a/drivers/net/wireless/microchip/wilc1000/sdio.c
> +++ b/drivers/net/wireless/microchip/wilc1000/sdio.c
> @@ -149,9 +149,10 @@ static int wilc_sdio_probe(struct sdio_func *func,
> wilc->dev = &func->dev;
>
> wilc->rtc_clk = devm_clk_get(&func->card->dev, "rtc");
> - if (PTR_ERR_OR_ZERO(wilc->rtc_clk) == -EPROBE_DEFER)
> + if (PTR_ERR_OR_ZERO(wilc->rtc_clk) == -EPROBE_DEFER) {
> + kfree(sdio_priv);
> return -EPROBE_DEFER;
> - else if (!IS_ERR(wilc->rtc_clk))
> + } else if (!IS_ERR(wilc->rtc_clk))
> clk_prepare_enable(wilc->rtc_clk);
>
> dev_info(&func->dev, "Driver Initializing success\n");
> --
> 2.17.1
>