return who;
}
+static inline unsigned long xlock_try_lock(struct xlock *lock, unsigned long who)
+{
+ return __sync_bool_compare_and_swap(&lock->owner, Noone, who);
+}
+
static inline void xlock_release(struct xlock *lock)
{
+ BARRIER();
lock->owner = Noone;
}