cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mcs_spinlock.h (570B)


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