On Thu, Aug 01, 2019 at 04:32:51PM +0200, Thomas Gleixner wrote: > +#ifdef CONFIG_HAVE_ARCH_TRACEHOOK > +/** > + * tracehook_handle_notify_resume - Notify resume handling for virt > + * > + * Called with interrupts and preemption enabled from VMENTER/EXIT. > + */ > +void tracehook_handle_notify_resume(void) > +{ > + local_irq_disable(); > + while (test_and_clear_thread_flag(TIF_NOTIFY_RESUME)) { > + local_irq_enable(); > + tracehook_notify_resume(NULL); > + local_irq_disable(); > + } > + local_irq_enable(); I'm confused by the IRQ state swizzling here, what is it doing? > +} > +EXPORT_SYMBOL_GPL(tracehook_handle_notify_resume); > +#endif > >