diff options
Diffstat (limited to 'arch/s390/kernel/semaphore.c')
-rw-r--r-- | arch/s390/kernel/semaphore.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/arch/s390/kernel/semaphore.c b/arch/s390/kernel/semaphore.c index 8dfb690c159f..191303f6c1d8 100644 --- a/arch/s390/kernel/semaphore.c +++ b/arch/s390/kernel/semaphore.c | |||
@@ -26,17 +26,17 @@ static inline int __sem_update_count(struct semaphore *sem, int incr) | |||
26 | { | 26 | { |
27 | int old_val, new_val; | 27 | int old_val, new_val; |
28 | 28 | ||
29 | __asm__ __volatile__(" l %0,0(%3)\n" | 29 | asm volatile( |
30 | "0: ltr %1,%0\n" | 30 | " l %0,0(%3)\n" |
31 | " jhe 1f\n" | 31 | "0: ltr %1,%0\n" |
32 | " lhi %1,0\n" | 32 | " jhe 1f\n" |
33 | "1: ar %1,%4\n" | 33 | " lhi %1,0\n" |
34 | " cs %0,%1,0(%3)\n" | 34 | "1: ar %1,%4\n" |
35 | " jl 0b\n" | 35 | " cs %0,%1,0(%3)\n" |
36 | : "=&d" (old_val), "=&d" (new_val), | 36 | " jl 0b\n" |
37 | "=m" (sem->count) | 37 | : "=&d" (old_val), "=&d" (new_val), "=m" (sem->count) |
38 | : "a" (&sem->count), "d" (incr), "m" (sem->count) | 38 | : "a" (&sem->count), "d" (incr), "m" (sem->count) |
39 | : "cc" ); | 39 | : "cc"); |
40 | return old_val; | 40 | return old_val; |
41 | } | 41 | } |
42 | 42 | ||