Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a319c8ff authored by Will Deacon's avatar Will Deacon Committed by Greg Kroah-Hartman
Browse files

futex: Update comments and docs about return values of arch futex code



commit 427503519739e779c0db8afe876c1b33f3ac60ae upstream.

The architecture implementations of 'arch_futex_atomic_op_inuser()' and
'futex_atomic_cmpxchg_inatomic()' are permitted to return only -EFAULT,
-EAGAIN or -ENOSYS in the case of failure.

Update the comments in the asm-generic/ implementation and also a stray
reference in the robust futex documentation.

Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4423a82c
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -218,5 +218,4 @@ All other architectures should build just fine too - but they won't have
the new syscalls yet.
the new syscalls yet.


Architectures need to implement the new futex_atomic_cmpxchg_inatomic()
Architectures need to implement the new futex_atomic_cmpxchg_inatomic()
inline function before writing up the syscalls (that function returns
inline function before writing up the syscalls.
-ENOSYS right now).
+6 −2
Original line number Original line Diff line number Diff line
@@ -23,7 +23,9 @@
 *
 *
 * Return:
 * Return:
 * 0 - On success
 * 0 - On success
 * <0 - On error
 * -EFAULT - User access resulted in a page fault
 * -EAGAIN - Atomic operation was unable to complete due to contention
 * -ENOSYS - Operation not supported
 */
 */
static inline int
static inline int
arch_futex_atomic_op_inuser(int op, u32 oparg, int *oval, u32 __user *uaddr)
arch_futex_atomic_op_inuser(int op, u32 oparg, int *oval, u32 __user *uaddr)
@@ -85,7 +87,9 @@ arch_futex_atomic_op_inuser(int op, u32 oparg, int *oval, u32 __user *uaddr)
 *
 *
 * Return:
 * Return:
 * 0 - On success
 * 0 - On success
 * <0 - On error
 * -EFAULT - User access resulted in a page fault
 * -EAGAIN - Atomic operation was unable to complete due to contention
 * -ENOSYS - Function not implemented (only if !HAVE_FUTEX_CMPXCHG)
 */
 */
static inline int
static inline int
futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,