On Tue, Jul 06, 2021 at 12:16:37PM +0200, Arnd Bergmann wrote: > On Tue, Jul 6, 2021 at 6:18 AM Huacai Chen <chenhuacai@xxxxxxxxxxx> wrote: > > > +void arch_cpu_idle(void) > > +{ > > + local_irq_enable(); > > + __arch_cpu_idle(); > > +} > > This looks racy: What happens if an interrupt is pending and hits before > entering __arch_cpu_idle()? They fix it up in their interrupt handler by moving the IP over the actual IDLE instruction.. Still the above is broken in that local_irq_enable() will have all sorts of tracing, but RCU is disabled at this point, so it is still very much broken.