On Mon, 16 Nov 2020 10:37:49 -0800 Martin KaFai Lau wrote:
> On Mon, Nov 16, 2020 at 10:00:04AM -0800, Jakub Kicinski wrote:
> > Locks that can run in any context but preempt disabled or softirq
> > disabled?  
> Not exactly. e.g. running from irq won't work.
> 
> > Let me cut to the chase. Are you sure you didn't mean to check
> > if (irq_count()) ?  
> so, no.
> 
> From preempt.h:
> 
> /*
>  * ...
>  * in_interrupt() - We're in NMI,IRQ,SoftIRQ context or have BH disabled
>  * ...
>  */
> #define in_interrupt()          (irq_count())

Right, as I said in my correction (in_irq() || in_nmi()).

Just to spell it out AFAIU in_serving_softirq() will return true when
softirq is active and interrupted by a hard irq or an NMI.

Reply via email to