brcmfmac: make brcmf_p2p_detach() call conditional
authorArend van Spriel <arend@broadcom.com>
Mon, 15 Jun 2015 20:48:39 +0000 (22:48 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 16 Jun 2015 08:35:10 +0000 (11:35 +0300)
During verification of error handling in brcmf_cfg80211_attach() a
null pointer dereference occurred upon calling brcmf_p2p_detach()
from brcmf_detach(). This should only be called when the
brcmf_cfg80211_attach() has succeeded.

Fixes: f7a40873d2fa ("brcmfmac: assure p2pdev is unregistered upon driver unload")
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/brcm80211/brcmfmac/core.c

index 866b818889e6b953593228cff2082aca68dadc99..fe9d3fbf5fe21e0c74c5852254c2682f3725ff18 100644 (file)
@@ -1098,7 +1098,8 @@ void brcmf_detach(struct device *dev)
 
        /* stop firmware event handling */
        brcmf_fweh_detach(drvr);
-       brcmf_p2p_detach(&drvr->config->p2p);
+       if (drvr->config)
+               brcmf_p2p_detach(&drvr->config->p2p);
 
        brcmf_bus_change_state(bus_if, BRCMF_BUS_DOWN);