diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/ChangeLog | 7 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 1f5c3f6f43..01de11fa82 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,10 @@ +2004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com> + + * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap): + Add memory clobber to inline assembly. + (__lll_mutex_trylock): Likewise. + (__lll_mutex_cond_trylock): Likewise. + 2004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com> * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue): diff --git a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h index 9549cff64e..34f8b09f61 100644 --- a/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h @@ -112,7 +112,7 @@ " jl 0b\n" \ "1:" \ : "=Q" (*__futex), "=&d" (oldval), "=&d" (newval) \ - : "m" (*__futex) : "cc" ); \ + : "m" (*__futex) : "cc", "memory" ); \ } while (0) @@ -124,7 +124,7 @@ __lll_mutex_trylock (int *futex) __asm __volatile ("cs %0,%3,%1" : "=d" (old), "=Q" (*futex) - : "0" (0), "d" (1), "m" (*futex) : "cc" ); + : "0" (0), "d" (1), "m" (*futex) : "cc", "memory" ); return old != 0; } #define lll_mutex_trylock(futex) __lll_mutex_trylock (&(futex)) @@ -138,7 +138,7 @@ __lll_mutex_cond_trylock (int *futex) __asm __volatile ("cs %0,%3,%1" : "=d" (old), "=Q" (*futex) - : "0" (0), "d" (2), "m" (*futex) : "cc" ); + : "0" (0), "d" (2), "m" (*futex) : "cc", "memory" ); return old != 0; } #define lll_mutex_cond_trylock(futex) __lll_mutex_cond_trylock (&(futex)) |