When the bus is down, eg. due to rmmod, there is no need to
attempt to inform firmware about it.

Reviewed-by: Hante Meuleman <[email protected]>
Reviewed-by: Pieter-Paul Giesberts <[email protected]>
Reviewed-by: Franky Lin <[email protected]>
Signed-off-by: Arend van Spriel <[email protected]>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c 
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
index 241747b..8428be8 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
@@ -1398,6 +1398,13 @@ void brcmf_msgbuf_delete_flowring(struct brcmf_pub 
*drvr, u16 flowid)
        u8 ifidx;
        int err;
 
+       /* no need to submit if firmware can not be reached */
+       if (drvr->bus_if->state != BRCMF_BUS_UP) {
+               brcmf_dbg(MSGBUF, "bus down, flowring will be removed\n");
+               brcmf_msgbuf_remove_flowring(msgbuf, flowid);
+               return;
+       }
+
        commonring = msgbuf->commonrings[BRCMF_H2D_MSGRING_CONTROL_SUBMIT];
        brcmf_commonring_lock(commonring);
        ret_ptr = brcmf_commonring_reserve_for_write(commonring);
-- 
1.9.1

Reply via email to