On Sun, Aug 09, 2015 at 07:55:39PM +0200, Manfred Spraul wrote: > sem_lock() did not properly pair memory barriers: > > !spin_is_locked() and spin_unlock_wait() are both only control barriers. > The code needs an acquire barrier, otherwise the cpu might perform > read operations before the lock test. > As no primitive exists inside <include/spinlock.h> and since it seems > noone wants another primitive, the code creates a local primitive within > ipc/sem.c. > > With regards to -stable: > The change of sem_wait_array() is a bugfix, the change to sem_lock() > is a nop (just a preprocessor redefinition to improve the readability). > The bugfix is necessary for all kernels that use sem_wait_array() > (i.e.: starting from 3.10). > > Andrew: Could you include it into your tree and forward it? > > Signed-off-by: Manfred Spraul <[email protected]> > Reported-by: Oleg Nesterov <[email protected]> > Cc: <[email protected]>
Acked-by: Peter Zijlstra (Intel) <[email protected]> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

