Messages in this thread |  | | | Date | Tue, 12 Jan 2010 17:26:47 -0800 (PST) | | From | Linus Torvalds <> | | Subject | Re: x86-32: clean up rwsem inline asm statements |
| |
On Wed, 13 Jan 2010, Andreas Schwab wrote:
> Linus Torvalds <torvalds@linux-foundation.org> writes: > > > @@ -249,7 +249,7 @@ static inline int rwsem_atomic_update(int delta, struct rw_semaphore *sem) > > { > > int tmp = delta; > > > > - asm volatile(LOCK_PREFIX "xadd %0,%1" > > + asm volatile(LOCK_PREFIX "xadd%z0 %0,%1" > > : "+r" (tmp), "+m" (sem->count) > > : : "memory"); > > I think %z0 should be %z1 here.
You're right, but Peter made it all a non-issue anyway.
Thanks for noticing, though, since it implies that somebody read the patch carefully. It's always a bit scary to change fundamental inline asms, especially for something like a locking routine where the core _semantics_ are so subtle (and if you get locking wrong, things may still work - you just end up with some really odd race conditions).
Linus
|  |