[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