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

futex-irq.h (482B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __ASM_SH_FUTEX_IRQ_H
      3#define __ASM_SH_FUTEX_IRQ_H
      4
      5static inline int atomic_futex_op_cmpxchg_inatomic(u32 *uval,
      6						   u32 __user *uaddr,
      7						   u32 oldval, u32 newval)
      8{
      9	unsigned long flags;
     10	int ret;
     11	u32 prev = 0;
     12
     13	local_irq_save(flags);
     14
     15	ret = get_user(prev, uaddr);
     16	if (!ret && oldval == prev)
     17		ret = put_user(newval, uaddr);
     18
     19	local_irq_restore(flags);
     20
     21	*uval = prev;
     22	return ret;
     23}
     24
     25#endif /* __ASM_SH_FUTEX_IRQ_H */