Commit 8f17d3a5 authored by Ingo Molnar's avatar Ingo Molnar Committed by Linus Torvalds
Browse files

[PATCH] lightweight robust futexes updates



- fix: initialize the robust list(s) to NULL in copy_process.

- doc update

- cleanup: rename _inuser to _inatomic

- __user cleanups and other small cleanups

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Arjan van de Ven <arjan@infradead.org>
Cc: Ulrich Drepper <drepper@redhat.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8fdd6c6d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -142,8 +142,6 @@ On insertion:
    of the 'lock word', to the linked list starting at 'head', and
 4) clear the 'list_op_pending' word.

	XXX I am particularly unsure of the following -pj XXX

On removal:
 1) set the 'list_op_pending' word to the address of the 'lock word'
    to be removed,
+1 −1
Original line number Diff line number Diff line
@@ -213,6 +213,6 @@ robust-mutex testcases.
All other architectures should build just fine too - but they wont have
the new syscalls yet.

Architectures need to implement the new futex_atomic_cmpxchg_inuser()
Architectures need to implement the new futex_atomic_cmpxchg_inatomic()
inline function before writing up the syscalls (that function returns
-ENOSYS right now).
+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@
extern int futex_atomic_op_inuser(int encoded_op, int __user *uaddr);

static inline int
futex_atomic_cmpxchg_inuser(int __user *uaddr, int oldval, int newval)
futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
{
	return -ENOSYS;
}
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
}

static inline int
futex_atomic_cmpxchg_inuser(int __user *uaddr, int oldval, int newval)
futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
{
	return -ENOSYS;
}
+1 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@ futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
}

static inline int
futex_atomic_cmpxchg_inuser(int __user *uaddr, int oldval, int newval)
futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
{
	if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
		return -EFAULT;
Loading