104-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. From dabf1e17d33e087d4e24e6d0224cf9bc04ebfcc1 Mon Sep 17 00:00:00 2001
  2. From: Arend van Spriel <[email protected]>
  3. Date: Thu, 11 Jul 2019 11:05:11 +0200
  4. Subject: [PATCH 6/7] brcmfmac: simply remove flowring if bus is down
  5. When the bus is down, eg. due to rmmod, there is no need to
  6. attempt to inform firmware about it.
  7. Reviewed-by: Hante Meuleman <[email protected]>
  8. Reviewed-by: Pieter-Paul Giesberts <[email protected]>
  9. Reviewed-by: Franky Lin <[email protected]>
  10. Signed-off-by: Arend van Spriel <[email protected]>
  11. ---
  12. drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 7 +++++++
  13. 1 file changed, 7 insertions(+)
  14. --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
  15. +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c
  16. @@ -1398,6 +1398,13 @@ void brcmf_msgbuf_delete_flowring(struct
  17. u8 ifidx;
  18. int err;
  19. + /* no need to submit if firmware can not be reached */
  20. + if (drvr->bus_if->state != BRCMF_BUS_UP) {
  21. + brcmf_dbg(MSGBUF, "bus down, flowring will be removed\n");
  22. + brcmf_msgbuf_remove_flowring(msgbuf, flowid);
  23. + return;
  24. + }
  25. +
  26. commonring = msgbuf->commonrings[BRCMF_H2D_MSGRING_CONTROL_SUBMIT];
  27. brcmf_commonring_lock(commonring);
  28. ret_ptr = brcmf_commonring_reserve_for_write(commonring);