2020-09-28 08:05:08

by Arend Van Spriel

[permalink] [raw]
Subject: Re: [patch 25/35] net: brcmfmac: Use netif_rx_any_context().

On 9/27/2020 9:49 PM, Thomas Gleixner wrote:
> From: Sebastian Andrzej Siewior <[email protected]>
>
> The usage of in_interrupt() in non-core code is phased out. Ideally the
> information of the calling context should be passed by the callers or the
> functions be split as appropriate.
>
> brcmfmac uses in_interupt() to select the netif_rx*() variant which matches
> the calling context. The attempt to consolidate the code by passing an
> arguemnt or by distangling it failed due lack of knowledge about this
> driver and because the call chains are convoluted and hard to follow.

I think it is only for USB devices that the function can be called in
"interrupt" context. PCIe devices call it from thread context for sure.
The function brcmf_netif_rx() is (in)directly called by brcmf_rx_frame(),
which is used by SDIO and USB. Anyway, it will be a bit more work, but
doable. Let me see what I can come up with.

Regards,
Arend



Attachments:
smime.p7s (4.08 kB)
S/MIME Cryptographic Signature