lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 068/717] brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}
    Date
    From: Seung-Woo Kim <sw0312.kim@samsung.com>

    [ Upstream commit 9db946284e07bb27309dd546b7fee528664ba82a ]

    There are missig brcmf_free() for brcmf_alloc(). Fix memory leak
    by adding missed brcmf_free().

    Reported-by: Jaehoon Chung <jh80.chung@samsung.com>
    Fixes: a1f5aac1765a ("brcmfmac: don't realloc wiphy during PCIe reset")
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Link: https://lore.kernel.org/r/1603849967-22817-1-git-send-email-sw0312.kim@samsung.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 6 ++++--
    drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 1 +
    2 files changed, 5 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
    index 39381cbde89e6..d8db0dbcfe091 100644
    --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
    +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
    @@ -1936,16 +1936,18 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id)
    fwreq = brcmf_pcie_prepare_fw_request(devinfo);
    if (!fwreq) {
    ret = -ENOMEM;
    - goto fail_bus;
    + goto fail_brcmf;
    }

    ret = brcmf_fw_get_firmwares(bus->dev, fwreq, brcmf_pcie_setup);
    if (ret < 0) {
    kfree(fwreq);
    - goto fail_bus;
    + goto fail_brcmf;
    }
    return 0;

    +fail_brcmf:
    + brcmf_free(&devinfo->pdev->dev);
    fail_bus:
    kfree(bus->msgbuf);
    kfree(bus);
    diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
    index 99987a789e7e3..59c2b2b6027da 100644
    --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
    +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
    @@ -4541,6 +4541,7 @@ void brcmf_sdio_remove(struct brcmf_sdio *bus)
    brcmf_sdiod_intr_unregister(bus->sdiodev);

    brcmf_detach(bus->sdiodev->dev);
    + brcmf_free(bus->sdiodev->dev);

    cancel_work_sync(&bus->datawork);
    if (bus->brcmf_wq)
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-12-28 16:21    [W:2.598 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site