diff options
author | Rafał Miłecki <rafal@milecki.pl> | 2019-07-21 23:09:53 +0200 |
---|---|---|
committer | Rafał Miłecki <rafal@milecki.pl> | 2019-07-22 07:11:56 +0200 |
commit | 8231f67218e584be61d32b24bd17cc55e500638c (patch) | |
tree | 140553bf059b5e9c42396f73b08a871e6b787a28 /package/kernel/mac80211/patches/469-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch | |
parent | 627bb0b8dc75a0a57cdd808ccd6880f67fe959d6 (diff) | |
download | upstream-8231f67218e584be61d32b24bd17cc55e500638c.tar.gz upstream-8231f67218e584be61d32b24bd17cc55e500638c.tar.bz2 upstream-8231f67218e584be61d32b24bd17cc55e500638c.zip |
mac80211: brcmfmac: backport fixes from kernel 5.4
This fixes:
1) Crash during USB disconnect
2) Crash in brcmf_txfinalize() on rmmod with packets queued
3) Some errors in exit path
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Diffstat (limited to 'package/kernel/mac80211/patches/469-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch')
-rw-r--r-- | package/kernel/mac80211/patches/469-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/469-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch b/package/kernel/mac80211/patches/469-v5.4-0006-brcmfmac-simply-remove-flowring-if-bus-is-down.patch new file mode 100644 index 0000000000..fd010f2a8f --- /dev/null +++ b/package/kernel/mac80211/patches/469-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 <arend.vanspriel@broadcom.com> +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 <hante.meuleman@broadcom.com> +Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com> +Reviewed-by: Franky Lin <franky.lin@broadcom.com> +Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> +--- + 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 +@@ -1408,6 +1408,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); |