brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free} 63/246263/1
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 27 Oct 2020 10:23:56 +0000 (19:23 +0900)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 27 Oct 2020 10:29:15 +0000 (19:29 +0900)
There are missig brcmf_free() for brcmf_alloc(). Fix memory leak
by adding missed brcmf_free().

Change-Id: I050398a7b828b0fb2aadbe491f353b3d3c47bdd6
Reported-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c

index 3be60ae..cb68f54 100644 (file)
@@ -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);
index a3595b1..e6f4d4e 100644 (file)
@@ -4432,6 +4432,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)