[PATCH] mmc: sdhci-xenon: kill xenon_clean_phy()

Jisheng Zhang jszhang at marvell.com
Wed May 17 02:17:26 PDT 2017


On Tue, 16 May 2017 14:22:11 +0200 Andrew Lunn wrote:

> On Tue, May 16, 2017 at 02:17:20PM +0800, Jisheng Zhang wrote:
> > Currently, the xenon_clean_phy() is only used for freeing phy_params.
> > The phy_params is allocated by devm_kzalloc(), there's no need to free
> > is explicitly.
> > 
> > Signed-off-by: Jisheng Zhang <jszhang at marvell.com>
> > ---
> >  drivers/mmc/host/sdhci-xenon-phy.c | 14 +-------------
> >  drivers/mmc/host/sdhci-xenon.c     |  6 +-----
> >  drivers/mmc/host/sdhci-xenon.h     |  1 -
> >  3 files changed, 2 insertions(+), 19 deletions(-)
> > 
> > diff --git a/drivers/mmc/host/sdhci-xenon-phy.c b/drivers/mmc/host/sdhci-xenon-phy.c
> > index 6356781f1cca..f7e26b031e76 100644
> > --- a/drivers/mmc/host/sdhci-xenon-phy.c
> > +++ b/drivers/mmc/host/sdhci-xenon-phy.c
> > @@ -787,14 +787,6 @@ int xenon_phy_adj(struct sdhci_host *host, struct mmc_ios *ios)
> >  	return ret;
> >  }
> >  
> > -void xenon_clean_phy(struct sdhci_host *host)
> > -{
> > -	struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host);
> > -	struct xenon_priv *priv = sdhci_pltfm_priv(pltfm_host);
> > -
> > -	kfree(priv->phy_params);  
> 
> Hi Jisheng

Hi Andrew,

> 
> If the memory has been allocated using the devm_ API, calling kfree
> here is wrong, and can lead to a double free.

Yes. In fact, I found this issue by unbinding then binding the xenon host.


> 
> So this patch should probably have a fixes: tag. Should it also goto
> stable?

As pointed out by RMK, the sdhci-xenon driver is merged in current 4.12-rc1,
so we just need to apply this fix in later rcN.

Thanks,
Jisheng




More information about the linux-arm-kernel mailing list