On Mon, 2018-10-01 at 09:16 +0200, Juergen Gross wrote: > - /* If irq pending already clear it and return. */ > + /* Guard against reentry. */ > + local_irq_save(flags); > + > + /* If irq pending already clear it. */ > if (xen_test_irq_pending(irq)) { > xen_clear_irq_pending(irq); > - return; > + } else if (READ_ONCE(*byte) == val) { > + /* Block until irq becomes pending (or a spurious wakeup) */ > + xen_poll_irq(irq); > } Does this still allow other IRQs to wake it from xen_poll_irq()? In the case where process-context code is spinning for a lock without disabling interrupts, we *should* allow interrupts to occur still... does this?
Attachment:
smime.p7s
Description: S/MIME cryptographic signature