brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
authorHector Martin <marcan@marcan.st>
Mon, 31 Jan 2022 16:07:05 +0000 (01:07 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:03 +0000 (14:23 +0200)
commit 5e90f0f3ead014867dade7a22f93958119f5efab upstream.

This avoids leaking memory if brcmf_chip_get_raminfo fails. Note that
the CLM blob is released in the device remove path.

Fixes: 82f93cf46d60 ("brcmfmac: get chip's default RAM info during PCIe setup")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Cc: stable@vger.kernel.org
Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220131160713.245637-2-marcan@marcan.st
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c

index 8b149996fc0006fb2df534216dc0de9e3a5a72b3..f876b1d8d00d02e83e55c9ea51ab317d769df3c7 100644 (file)
@@ -1777,6 +1777,8 @@ static void brcmf_pcie_setup(struct device *dev, int ret,
        ret = brcmf_chip_get_raminfo(devinfo->ci);
        if (ret) {
                brcmf_err(bus, "Failed to get RAM info\n");
+               release_firmware(fw);
+               brcmf_fw_nvram_free(nvram);
                goto fail;
        }