From bc0c0a55643f4ca69ef1f431d9c4542705d9bfb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Sun, 21 Jul 2019 11:23:32 +0200 Subject: mac80211: brcm: backport first set of 5.4 brcmfmac changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This doesn't include 9ff8614a3dbe ("brcmfmac: use separate Kconfig file for brcmfmac") due to a few conflicts with backports changes. An important change is: [PATCH 2/7] brcmfmac: change the order of things in brcmf_detach() which fixes a rmmod crash in the brcmf_txfinalize(). Signed-off-by: Rafał Miłecki (cherry picked from commit db8e08a5a4469f98ed5d9b0ff3189e356f53d924) --- ...mac-simply-remove-flowring-if-bus-is-down.patch | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 package/kernel/mac80211/patches/brcm/384-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch (limited to 'package/kernel/mac80211/patches/brcm/384-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch') diff --git a/package/kernel/mac80211/patches/brcm/384-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch b/package/kernel/mac80211/patches/brcm/384-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch new file mode 100644 index 0000000000..a24fe38947 --- /dev/null +++ b/package/kernel/mac80211/patches/brcm/384-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch @@ -0,0 +1,32 @@ +From dabf1e17d33e087d4e24e6d0224cf9bc04ebfcc1 Mon Sep 17 00:00:00 2001 +From: Arend van Spriel +Date: Thu, 11 Jul 2019 11:05:11 +0200 +Subject: [PATCH 6/7] brcmfmac: simply remove flowring if bus is down + +When the bus is down, eg. due to rmmod, there is no need to +attempt to inform firmware about it. + +Reviewed-by: Hante Meuleman +Reviewed-by: Pieter-Paul Giesberts +Reviewed-by: Franky Lin +Signed-off-by: Arend van Spriel +--- + drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- 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 + 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); -- cgit v1.2.3