/* Mark a cpu as no longer interested in a lock. Restores previous lock of interest (NULL for none).  */
static void unspinning_lock(struct xen_spinlock *xl, struct xen_spinlock *prev)
/* Mark a cpu as no longer interested in a lock. Restores previous lock of interest (NULL for none).  */
static void unspinning_lock(struct xen_spinlock *xl, struct xen_spinlock *prev)
{
	asm(LOCK_PREFIX " decw %0"
	    : "+m" (xl->spinners) : : "memory");
	wmb();
	__get_cpu_var(lock_spinners) = prev;
}