From: Paul E. McKenney Date: Thu, 29 Jun 2017 19:59:32 +0000 (-0700) Subject: ipc: Replace spin_unlock_wait() with lock/unlock pair X-Git-Tag: v4.14-rc1~174^2^2^5~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e0892e086aae8d86e33dc8fb87f3d36c901df574;p=platform%2Fkernel%2Flinux-rpi.git ipc: Replace spin_unlock_wait() with lock/unlock pair There is no agreed-upon definition of spin_unlock_wait()'s semantics, and it appears that all callers could do just as well with a lock/unlock pair. This commit therefore replaces the spin_unlock_wait() call in exit_sem() with spin_lock() followed immediately by spin_unlock(). This should be safe from a performance perspective because exit_sem() is rarely invoked in production. Signed-off-by: Paul E. McKenney Cc: Andrew Morton Cc: Davidlohr Bueso Cc: Will Deacon Cc: Peter Zijlstra Cc: Alan Stern Cc: Andrea Parri Cc: Linus Torvalds Acked-by: Manfred Spraul --- diff --git a/ipc/sem.c b/ipc/sem.c index 9e70cd7..2570830 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -2091,7 +2091,8 @@ void exit_sem(struct task_struct *tsk) * possibility where we exit while freeary() didn't * finish unlocking sem_undo_list. */ - spin_unlock_wait(&ulp->lock); + spin_lock(&ulp->lock); + spin_unlock(&ulp->lock); rcu_read_unlock(); break; }