On 9/27/2020 9:49 PM, Thomas Gleixner wrote: > From: Sebastian Andrzej Siewior > > 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