Messages in this thread | | | Subject | Re: [patch 26/35] net: brcmfmac: Convey allocation mode as argument | From | Arend Van Spriel <> | Date | Mon, 28 Sep 2020 11:34:22 +0200 |
| |
On 9/27/2020 9:49 PM, Thomas Gleixner wrote: > From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > > The usage of in_interrupt() in drivers is phased out and Linus clearly > requested that code which changes behaviour depending on context should > either be seperated or the context be conveyed in an argument passed by the > caller, which usually knows the context. > > brcmf_fweh_process_event() uses in_interrupt() to select the allocation > mode GFP_KERNEL/GFP_ATOMIC. Aside of the above reasons this check is > incomplete as it cannot detect contexts which just have preemption or > interrupts disabled. > > All callchains leading to brcmf_fweh_process_event() can clearly identify > the calling context. Convey a 'gfp' argument through the callchains and let > the callers hand in the appropriate GFP mode. > > This has also the advantage that any change of execution context or > preemption/interrupt state in these callchains will be detected by the > memory allocator for all GFP_KERNEL allocations.
Looking at the functions changed I see overlap with patch 25/35 so maybe change to gfp flag to a 'in_isr' bool. The flag can then be used for dealing with netif_rx as well.
Regards, Arend [unhandled content-type:application/pkcs7-signature] | |