lkml.org 
[lkml]   [2017]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 122/152] PCI: xgene: Fix double free on init error
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Dan Carpenter <dan.carpenter@oracle.com>

    [ Upstream commit 1ded56df3247d358390ae6dc09ccee620262ac5f ]

    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")
    Also-posted-by: Shawn Lin <shawn.lin@rock-chips.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Tanmay Inamdar <tinamdar@apm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/pci/host/pci-xgene.c | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    --- 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 p
    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;

    \
     
     \ /
      Last update: 2017-04-10 19:29    [W:4.093 / U:2.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site