diff options
Diffstat (limited to 'kernel/futex.c')
-rw-r--r-- | kernel/futex.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index cedcd60f26ff..720fa3dd629d 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -198,11 +198,12 @@ static void drop_futex_key_refs(union futex_key *key) | |||
198 | } | 198 | } |
199 | 199 | ||
200 | /** | 200 | /** |
201 | * get_futex_key - Get parameters which are the keys for a futex. | 201 | * get_futex_key() - Get parameters which are the keys for a futex |
202 | * @uaddr: virtual address of the futex | 202 | * @uaddr: virtual address of the futex |
203 | * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED | 203 | * @fshared: 0 for a PROCESS_PRIVATE futex, 1 for PROCESS_SHARED |
204 | * @key: address where result is stored. | 204 | * @key: address where result is stored. |
205 | * @rw: mapping needs to be read/write (values: VERIFY_READ, VERIFY_WRITE) | 205 | * @rw: mapping needs to be read/write (values: VERIFY_READ, |
206 | * VERIFY_WRITE) | ||
206 | * | 207 | * |
207 | * Returns a negative error code or 0 | 208 | * Returns a negative error code or 0 |
208 | * The key words are stored in *key on success. | 209 | * The key words are stored in *key on success. |
@@ -288,8 +289,8 @@ void put_futex_key(int fshared, union futex_key *key) | |||
288 | drop_futex_key_refs(key); | 289 | drop_futex_key_refs(key); |
289 | } | 290 | } |
290 | 291 | ||
291 | /* | 292 | /** |
292 | * fault_in_user_writeable - fault in user address and verify RW access | 293 | * fault_in_user_writeable() - Fault in user address and verify RW access |
293 | * @uaddr: pointer to faulting user space address | 294 | * @uaddr: pointer to faulting user space address |
294 | * | 295 | * |
295 | * Slow path to fixup the fault we just took in the atomic write | 296 | * Slow path to fixup the fault we just took in the atomic write |
@@ -309,8 +310,8 @@ static int fault_in_user_writeable(u32 __user *uaddr) | |||
309 | 310 | ||
310 | /** | 311 | /** |
311 | * futex_top_waiter() - Return the highest priority waiter on a futex | 312 | * futex_top_waiter() - Return the highest priority waiter on a futex |
312 | * @hb: the hash bucket the futex_q's reside in | 313 | * @hb: the hash bucket the futex_q's reside in |
313 | * @key: the futex key (to distinguish it from other futex futex_q's) | 314 | * @key: the futex key (to distinguish it from other futex futex_q's) |
314 | * | 315 | * |
315 | * Must be called with the hb lock held. | 316 | * Must be called with the hb lock held. |
316 | */ | 317 | */ |
@@ -588,7 +589,7 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb, | |||
588 | } | 589 | } |
589 | 590 | ||
590 | /** | 591 | /** |
591 | * futex_lock_pi_atomic() - atomic work required to acquire a pi aware futex | 592 | * futex_lock_pi_atomic() - Atomic work required to acquire a pi aware futex |
592 | * @uaddr: the pi futex user address | 593 | * @uaddr: the pi futex user address |
593 | * @hb: the pi futex hash bucket | 594 | * @hb: the pi futex hash bucket |
594 | * @key: the futex key associated with uaddr and hb | 595 | * @key: the futex key associated with uaddr and hb |
@@ -1011,9 +1012,9 @@ void requeue_futex(struct futex_q *q, struct futex_hash_bucket *hb1, | |||
1011 | 1012 | ||
1012 | /** | 1013 | /** |
1013 | * requeue_pi_wake_futex() - Wake a task that acquired the lock during requeue | 1014 | * requeue_pi_wake_futex() - Wake a task that acquired the lock during requeue |
1014 | * q: the futex_q | 1015 | * @q: the futex_q |
1015 | * key: the key of the requeue target futex | 1016 | * @key: the key of the requeue target futex |
1016 | * hb: the hash_bucket of the requeue target futex | 1017 | * @hb: the hash_bucket of the requeue target futex |
1017 | * | 1018 | * |
1018 | * During futex_requeue, with requeue_pi=1, it is possible to acquire the | 1019 | * During futex_requeue, with requeue_pi=1, it is possible to acquire the |
1019 | * target futex if it is uncontended or via a lock steal. Set the futex_q key | 1020 | * target futex if it is uncontended or via a lock steal. Set the futex_q key |
@@ -2319,9 +2320,9 @@ out: | |||
2319 | */ | 2320 | */ |
2320 | 2321 | ||
2321 | /** | 2322 | /** |
2322 | * sys_set_robust_list - set the robust-futex list head of a task | 2323 | * sys_set_robust_list() - Set the robust-futex list head of a task |
2323 | * @head: pointer to the list-head | 2324 | * @head: pointer to the list-head |
2324 | * @len: length of the list-head, as userspace expects | 2325 | * @len: length of the list-head, as userspace expects |
2325 | */ | 2326 | */ |
2326 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head, | 2327 | SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head, |
2327 | size_t, len) | 2328 | size_t, len) |
@@ -2340,10 +2341,10 @@ SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head, | |||
2340 | } | 2341 | } |
2341 | 2342 | ||
2342 | /** | 2343 | /** |
2343 | * sys_get_robust_list - get the robust-futex list head of a task | 2344 | * sys_get_robust_list() - Get the robust-futex list head of a task |
2344 | * @pid: pid of the process [zero for current task] | 2345 | * @pid: pid of the process [zero for current task] |
2345 | * @head_ptr: pointer to a list-head pointer, the kernel fills it in | 2346 | * @head_ptr: pointer to a list-head pointer, the kernel fills it in |
2346 | * @len_ptr: pointer to a length field, the kernel fills in the header size | 2347 | * @len_ptr: pointer to a length field, the kernel fills in the header size |
2347 | */ | 2348 | */ |
2348 | SYSCALL_DEFINE3(get_robust_list, int, pid, | 2349 | SYSCALL_DEFINE3(get_robust_list, int, pid, |
2349 | struct robust_list_head __user * __user *, head_ptr, | 2350 | struct robust_list_head __user * __user *, head_ptr, |