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    [W:0.025 / U:2.624 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site