lkml.org 
[lkml]   [2014]   [Sep]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: linux-next: Tree for Aug 23
    On Tue, Sep 02, 2014 at 11:40:16AM +0200, Peter Zijlstra wrote:
    > On Mon, Sep 01, 2014 at 09:04:38PM +0200, Peter Zijlstra wrote:
    > > On Mon, Sep 01, 2014 at 09:46:42AM -0700, Guenter Roeck wrote:
    > > > Yes, the problem is still seen in next-140829. See qemu test results at
    > > > http://server.roeck-us.net:8010/builders.
    > > >
    > > > I provided sparc64 images at http://server.roeck-us.net/qemu/sparc64/.
    > > > The README file includes instructions on how to run the image in qemu
    > > > and how to build a kernel.
    > > >
    > > > I can do the same for mips and mips64 if needed; let me know.
    > >
    > > Thanks, that's enough to get started.
    >
    > This makes sparc64 go again, silly oversight indeed.
    >
    > ---
    > Subject: sparc64: Fix atomics
    >
    > The patch folding the atomic ops had a silly fail in the _return primitives.
    >
    > Fixes: 4f3316c2b5fe ("locking,arch,sparc: Fold atomic_ops")
    > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>

    Confirmed working.

    Tested-by: Guenter Roeck <linux@roeck-us.net>

    > ---
    > diff --git a/arch/sparc/lib/atomic_64.S b/arch/sparc/lib/atomic_64.S
    > index 96d70b4..05dac43 100644
    > --- a/arch/sparc/lib/atomic_64.S
    > +++ b/arch/sparc/lib/atomic_64.S
    > @@ -37,7 +37,7 @@ ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
    > cas [%o1], %g1, %g7; \
    > cmp %g1, %g7; \
    > bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
    > - add %g1, %o0, %g1; \
    > + op %g1, %o0, %g1; \
    > retl; \
    > sra %g1, 0, %o0; \
    > 2: BACKOFF_SPIN(%o2, %o3, 1b); \
    > @@ -76,7 +76,7 @@ ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
    > bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
    > nop; \
    > retl; \
    > - add %g1, %o0, %o0; \
    > + op %g1, %o0, %o0; \
    > 2: BACKOFF_SPIN(%o2, %o3, 1b); \
    > ENDPROC(atomic64_##op##_return);
    >
    >
    >


    \
     
     \ /
      Last update: 2014-09-02 20:41    [W:4.478 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site