1#ifndef __ASM_MCS_LOCK_H 2#define __ASM_MCS_LOCK_H 3 4#ifdef CONFIG_SMP 5#include <asm/spinlock.h> 6 7/* MCS spin-locking. */ 8#define arch_mcs_spin_lock_contended(lock) \ 9do { \ 10 /* Ensure prior stores are observed before we enter wfe. */ \ 11 smp_mb(); \ 12 while (!(smp_load_acquire(lock))) \ 13 wfe(); \ 14} while (0) \ 15 16#define arch_mcs_spin_unlock_contended(lock) \ 17do { \ 18 smp_store_release(lock, 1); \ 19 dsb_sev(); \ 20} while (0) 21 22#endif /* CONFIG_SMP */ 23#endif /* __ASM_MCS_LOCK_H */ 24