> This asserts that if we spin on a lock after interrupting another spin, > and interrupts are enabled, we must be in a softirq.
Looking at the bottom of the same file drivers/xen/core/spinlock.c: void xen_spin_kick(raw_spinlock_t *lock, unsigned int token) { unsigned int cpu; token &= (1U << TICKET_SHIFT) - 1; for_each_online_cpu(cpu) { if (spinning(&per_cpu(spinning, cpu), cpu, lock, token)) return; if (in_interrupt() && spinning(&per_cpu(spinning_bh, cpu), cpu, lock, token)) return; if (raw_irqs_disabled() && spinning(&per_cpu(spinning_irq, cpu), cpu, lock, token)) return; } } EXPORT_SYMBOL(xen_spin_kick); ... I may guess that line 74 should check for in_interrupt() instead of in_softirq(). However it is just a guess based on analogy. I don't currently understand the logic of that code. -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org