/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2012 ARM Ltd. */ #ifndef __ASM_SPINLOCK_H #define __ASM_SPINLOCK_H #include #include #include /* See include/linux/spinlock.h */ #define smp_mb__after_spinlock() smp_mb() /* * Changing this will break osq_lock() thanks to the call inside * smp_cond_load_relaxed(). * * See: * https://lore.kernel.org/lkml/20200110100612.GC2827@hirez.programming.kicks-ass.net */ #define vcpu_is_preempted vcpu_is_preempted #if defined(CONFIG_PARAVIRT) && defined(CONFIG_PARAVIRT_SCHED) static inline bool vcpu_is_preempted(int cpu) { return pv_vcpu_is_preempted(cpu); } #else static inline bool vcpu_is_preempted(int cpu) { return false; } #endif /* CONFIG_PARAVIRT && CONFIG_PARAVIRT_SCHED */ #endif /* __ASM_SPINLOCK_H */