s390/spinlock: fix system hang with spin_retry <= 0
authorGerald Schaefer <gerald.schaefer@de.ibm.com>
Tue, 6 May 2014 17:41:36 +0000 (19:41 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 20 May 2014 06:58:52 +0000 (08:58 +0200)
commit2e4006b34d06681ed95d55510d4450f29a13c417
tree0ff439559cfcfc2bac5eb1b41d6412694fd49a03
parentf1a858206804a5a694f30196e50756b86eb7d68c
s390/spinlock: fix system hang with spin_retry <= 0

On LPAR, when spin_retry is set to <= 0, arch_spin_lock_wait() and
arch_spin_lock_wait_flags() may end up in a while(1) loop w/o doing
any compare and swap operation. To fix this, use do/while instead of
for loop.

Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/lib/spinlock.c