spinlock.h (db8c246937713e60b7628661ccc187eeb81f2bae) spinlock.h (efc1d23b3d9af8cbff9f26677d67fb9c1b9cb792)
1/*
2 * S390 version
3 * Copyright IBM Corp. 1999
4 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
5 *
6 * Derived from "include/asm-i386/spinlock.h"
7 */
8

--- 30 unchanged lines hidden (view full) ---

39 do { while (arch_spin_is_locked(lock)) \
40 arch_spin_relax(lock); } while (0)
41
42extern void arch_spin_lock_wait(arch_spinlock_t *);
43extern void arch_spin_lock_wait_flags(arch_spinlock_t *, unsigned long flags);
44extern int arch_spin_trylock_retry(arch_spinlock_t *);
45extern void arch_spin_relax(arch_spinlock_t *lock);
46
1/*
2 * S390 version
3 * Copyright IBM Corp. 1999
4 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com)
5 *
6 * Derived from "include/asm-i386/spinlock.h"
7 */
8

--- 30 unchanged lines hidden (view full) ---

39 do { while (arch_spin_is_locked(lock)) \
40 arch_spin_relax(lock); } while (0)
41
42extern void arch_spin_lock_wait(arch_spinlock_t *);
43extern void arch_spin_lock_wait_flags(arch_spinlock_t *, unsigned long flags);
44extern int arch_spin_trylock_retry(arch_spinlock_t *);
45extern void arch_spin_relax(arch_spinlock_t *lock);
46
47static inline int arch_spin_value_unlocked(arch_spinlock_t lock)
48{
49 return lock.owner_cpu == 0;
50}
51
47static inline void arch_spin_lock(arch_spinlock_t *lp)
48{
49 int old;
50
51 old = _raw_compare_and_swap(&lp->owner_cpu, 0, ~smp_processor_id());
52 if (likely(old == 0))
53 return;
54 arch_spin_lock_wait(lp);

--- 122 unchanged lines hidden ---
52static inline void arch_spin_lock(arch_spinlock_t *lp)
53{
54 int old;
55
56 old = _raw_compare_and_swap(&lp->owner_cpu, 0, ~smp_processor_id());
57 if (likely(old == 0))
58 return;
59 arch_spin_lock_wait(lp);

--- 122 unchanged lines hidden ---