wifi: brcmfmac: avoid invalid list operation when vendor attach fails
authorArend van Spriel <arend.vanspriel@broadcom.com>
Sat, 6 Jan 2024 10:38:34 +0000 (11:38 +0100)
committerKalle Valo <kvalo@kernel.org>
Fri, 19 Jan 2024 17:30:18 +0000 (19:30 +0200)
When the brcmf_fwvid_attach() fails the driver instance is not added
to the vendor list. Hence we should not try to delete it from that
list when the brcmf_fwvid_detach() function is called in cleanup path.

Cc: stable@vger.kernel.org # 6.2.x
Fixes: d6a5c562214f ("wifi: brcmfmac: add support for vendor-specific firmware api")
Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240106103835.269149-3-arend.vanspriel@broadcom.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.c

index f633e2bbd8916615cb4184cb426388f3b4ed4c9f..b427782554b5904da695e805a9a18a5adda26472 100644 (file)
@@ -186,9 +186,10 @@ void brcmf_fwvid_detach(struct brcmf_pub *drvr)
 
        mutex_lock(&fwvid_list_lock);
 
-       drvr->vops = NULL;
-       list_del(&drvr->bus_if->list);
-
+       if (drvr->vops) {
+               drvr->vops = NULL;
+               list_del(&drvr->bus_if->list);
+       }
        mutex_unlock(&fwvid_list_lock);
 }