On 9/29/2020 10:25 PM, Thomas Gleixner wrote:
bcrmgf_netif_rx() uses in_interrupt to chose between netif_rx() and netif_rx_ni(). in_interrupt() usage in drivers is phased out. Convey the execution mode via an 'inirq' argument through the various callchains leading to brcmf_netif_rx(): brcmf_pcie_isr_thread() <- Task context brcmf_proto_msgbuf_rx_trigger() brcmf_msgbuf_process_rx() brcmf_msgbuf_process_msgtype() brcmf_msgbuf_process_rx_complete() brcmf_netif_mon_rx() brcmf_netif_rx(isirq = false) brcmf_netif_rx(isirq = false) brcmf_sdio_readframes() <- Task context sdio_claim_host() might sleep brcmf_rx_frame(isirq = false) brcmf_sdio_rxglom() <- Task context sdio_claim_host() might sleep brcmf_rx_frame(isirq = false) brcmf_usb_rx_complete() <- Interrupt context brcmf_rx_frame(isirq = true) brcmf_rx_frame() brcmf_proto_rxreorder() brcmf_proto_bcdc_rxreorder() brcmf_fws_rxreorder() brcmf_netif_rx() brcmf_netif_rx()
Thanks for taking the dive. Reviewed-by: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx>
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Arend van Spriel <arend.vanspriel@xxxxxxxxxxxx> Cc: Kalle Valo <kvalo@xxxxxxxxxxxxxx> --- V2: New patch. Using an argument instead of switching to netif_rx_any_context() --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcdc.c | 4 +-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/bus.h | 3 +- drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 16 ++++++------ drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h | 2 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c | 10 +++---- drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.h | 2 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/msgbuf.c | 5 ++- drivers/net/wireless/broadcom/brcm80211/brcmfmac/proto.h | 6 ++-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 4 +-- drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c | 2 - 10 files changed, 29 insertions(+), 25 deletions(-)
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature