On Fri, Jun 28, 2019 at 01:11:51PM +0200, Thomas Gleixner wrote: > But that does not catch the case where the interrupt is on flight at the > hardware level but not yet serviced by the target CPU. That creates an > interesing race condition:
> + * It does not check whether there is an interrupt on flight at the > + * hardware level, but not serviced yet, as this might deadlock when > + * called with interrupts disabled and the target CPU of the interrupt > + * is the current CPU. > + /* > + * Make sure it's not being used on another CPU and if the chip > + * supports it also make sure that there is no (not yet serviced) > + * interrupt on flight at the hardware level. > + */ > + __synchronize_hardirq(desc, true); s/on flight/in flight/ ?

