Re: [PATCH 2/2] xen: make xen_qlock_wait() nestable
From: David Woodhouse
Date: Wed Oct 10 2018 - 07:53:52 EST
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