mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
ipc/sem.c: optimize if semops fail
Reduce the amount of scanning of the list of pending semaphore operations: If try_atomic_semop failed, then no changes were applied. Thus no need to restart. Additionally, this patch correct an incorrect comment: It's possible to wait for arbitrary semaphore values (do a dec by <x>, wait-for-zero, inc by <x> in one atomic operation) Both changes are from Nick Piggin, the patch is the result of a different split of the individual changes. Signed-off-by: Manfred Spraul <[email protected]> Cc: Nick Piggin <[email protected]> Cc: Pierre Peiffer <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
d4212093dc
commit
b6e90822e7
1 changed files with 2 additions and 2 deletions
|
|
@ -445,13 +445,13 @@ again:
|
|||
* of the completed operation:
|
||||
* - if the operation modified the array, then restart from the
|
||||
* head of the queue and check for threads that might be
|
||||
* waiting for semaphore values to become 0.
|
||||
* waiting for the new semaphore values.
|
||||
* - if the operation didn't modify the array, then just
|
||||
* continue.
|
||||
*/
|
||||
alter = q->alter;
|
||||
wake_up_sem_queue(q, error);
|
||||
if (alter)
|
||||
if (alter && !error)
|
||||
goto again;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue