ipc/sem: Convert empty critical section in to barrier and spin_unlock_wait

Commit 27d7be1801a4 ("ipc/sem.c: avoid using spin_unlock_wait()") replaced
spin_unlock_wait() with an empty critical section (spin_lock() immediately
followed by spin_unlock()) because release semantics are required and
many spin_unlock_wait() implementations do not provide release semantics.
However, this empty critical section is inefficient on many platforms,
so this commit replaces it with an smp_mb() followed by spin_unlock_wait().

Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
1 file changed