[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-pci
Subject:    Re: [patch] PCI: xgene: double free on init error
From:       Bjorn Helgaas <helgaas () kernel ! org>
Date:       2017-01-31 0:18:15
Message-ID: 20170131001815.GD20550 () bhelgaas-glaptop ! roam ! corp ! google ! com
[Download RAW message or body]

On Sat, Jan 21, 2017 at 07:49:49AM +0300, Dan Carpenter wrote:
> The "port" variable was allocated with devm_kzalloc() so if we free it
> with kfree() it will be freed twice.  Also I changed it to propogate the
> error from devm_ioremap_resource() instead of returning -ENOMEM.
> 
> Fixes: c5d460396100 ("PCI: Add MCFG quirks for X-Gene host controller")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Applied with Tanmay's ack to pci/host-xgene for v4.11, thanks!

> diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c
> index 7c3b54b..142a166 100644
> --- a/drivers/pci/host/pci-xgene.c
> +++ b/drivers/pci/host/pci-xgene.c
> @@ -246,14 +246,11 @@ static int xgene_pcie_ecam_init(struct pci_config_window *cfg, u32 ipversion)
>  	ret = xgene_get_csr_resource(adev, &csr);
>  	if (ret) {
>  		dev_err(dev, "can't get CSR resource\n");
> -		kfree(port);
>  		return ret;
>  	}
>  	port->csr_base = devm_ioremap_resource(dev, &csr);
> -	if (IS_ERR(port->csr_base)) {
> -		kfree(port);
> -		return -ENOMEM;
> -	}
> +	if (IS_ERR(port->csr_base))
> +		return PTR_ERR(port->csr_base);
>  
>  	port->cfg_base = cfg->win;
>  	port->version = ipversion;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic