Commit 9db94628 authored by Seung-Woo Kim's avatar Seung-Woo Kim Committed by Kalle Valo
Browse files

brcmfmac: Fix memory leak for unpaired brcmf_{alloc/free}



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

Reported-by: default avatarJaehoon Chung <jh80.chung@samsung.com>
Fixes: a1f5aac1 ("brcmfmac: don't realloc wiphy during PCIe reset")
Signed-off-by: default avatarSeung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: default avatarArend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1603849967-22817-1-git-send-email-sw0312.kim@samsung.com
parent 398d816a
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1937,16 +1937,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);
+1 −0
Original line number Diff line number Diff line
@@ -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)