/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __ASM_SH_FUTEX_IRQ_H #define __ASM_SH_FUTEX_IRQ_H static inline int atomic_futex_op_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr, u32 oldval, u32 newval) { unsigned long flags; int ret; u32 prev = 0; local_irq_save(flags); ret = get_user(prev, uaddr); if (!ret && oldval == prev) ret = put_user(newval, uaddr); local_irq_restore(flags); *uval = prev; return ret; } #endif /* __ASM_SH_FUTEX_IRQ_H */ |