Re: [patch] PCI: xgene: double free on init error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, Jan 30, 2017 at 3:03 PM, Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote:
>
> 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@xxxxxxxxxx>
>
> Waiting for Tanmay's ack, ping :)
>
> > 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;

Sorry for delay. Patch looks good to me. Thanks.

Acked-by: Tanmay Inamdar <tinamdar@xxxxxxx>

Thanks,
Tanmay
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux