rqspinlock_t
extern int resilient_tas_spin_lock(rqspinlock_t *lock);
static inline int resilient_virt_spin_lock(rqspinlock_t *lock)
static __always_inline int res_spin_lock(rqspinlock_t *lock)
static __always_inline void res_spin_unlock(rqspinlock_t *lock)
#define raw_res_spin_lock_init(lock) ({ *(lock) = (rqspinlock_t)__ARCH_SPIN_LOCK_UNLOCKED; })
#define raw_res_spin_lock_init(lock) ({ *(lock) = (rqspinlock_t){0}; })
extern int resilient_tas_spin_lock(rqspinlock_t *lock);
extern int resilient_queued_spin_lock_slowpath(rqspinlock_t *lock, u32 val);
static __always_inline int resilient_virt_spin_lock(rqspinlock_t *lock)
rqspinlock_t lock; /* Protect adding/removing from the "list" */
rqspinlock_t lock;
rqspinlock_t spinlock;
rqspinlock_t lock ____cacheline_aligned_in_smp;
rqspinlock_t lock;
rqspinlock_t raw_lock;
rqspinlock_t lock;
rqspinlock_t lock;
rqspinlock_t lock;
rqspinlock_t spinlock ____cacheline_aligned_in_smp;
static noinline int check_deadlock_ABBA(rqspinlock_t *lock, u32 mask)
static noinline int check_timeout(rqspinlock_t *lock, u32 mask,
int __lockfunc resilient_tas_spin_lock(rqspinlock_t *lock)
int __lockfunc resilient_queued_spin_lock_slowpath(rqspinlock_t *lock, u32 val)
BUILD_BUG_ON(sizeof(rqspinlock_t) != sizeof(struct bpf_res_spin_lock));
ret = res_spin_lock((rqspinlock_t *)lock);
res_spin_unlock((rqspinlock_t *)lock);
ret = res_spin_lock((rqspinlock_t *)lock);
res_spin_unlock((rqspinlock_t *)lock);
static bool is_lock_released(rqspinlock_t *lock, u32 mask)
static noinline int check_deadlock_AA(rqspinlock_t *lock)
static rqspinlock_t rqspinlock;
rqspinlock_t *worker_lock = locks.worker_lock;
static rqspinlock_t lock_a;
static rqspinlock_t lock_b;
static rqspinlock_t lock_c;
rqspinlock_t *worker_lock;
rqspinlock_t *nmi_lock;