lkml.org 
[lkml]   [2010]   [Jan]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 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


\
 
 \ /
  Last update: 2010-01-13 02:29    [from the cache]
©2003-2011 Jasper Spaans