Re: strace-4.18 test suite oopses sparc64 4.12 and 4.13-rc kernels

From: David Miller
Date: Fri Aug 04 2017 - 12:48:49 EST


From: Mikael Pettersson <mikpelinux@xxxxxxxxx>
Date: Fri, 4 Aug 2017 10:02:25 +0200

> David Miller writes:
> > From: Mikael Pettersson <mikpelinux@xxxxxxxxx>
> > Date: Thu, 3 Aug 2017 22:02:57 +0200
> >
> > > With that in place the kernel booted fine.
> > > When I then ran the `poll' strace test binary, the OOPS was replaced by:
> > >
> > > [ 140.589913] _copy_from_user(fff000123c8dfa7c, (null), 240) res 240
> > > [ 140.753162] _copy_from_user(fff000123c8dfa7c, 00000000f7e4a000, 8) res 8
> > > [ 140.824155] _copy_from_user(fff000123c8dfa7c, 00000000f7e49ff8, 16) res 18442240552407530112
> > >
> > > That last `res' doesn't look good.
> >
> > Please test this patch:
> >
> > diff --git a/arch/sparc/lib/U3memcpy.S b/arch/sparc/lib/U3memcpy.S
> > index 54f9870..5a8cb37 100644
> > --- a/arch/sparc/lib/U3memcpy.S
> > +++ b/arch/sparc/lib/U3memcpy.S
> > @@ -145,13 +145,13 @@ ENDPROC(U3_retl_o2_plus_GS_plus_0x08)
> > ENTRY(U3_retl_o2_and_7_plus_GS)
> > and %o2, 7, %o2
> > retl
> > - add %o2, GLOBAL_SPARE, %o2
> > + add %o2, GLOBAL_SPARE, %o0
> > ENDPROC(U3_retl_o2_and_7_plus_GS)
> > ENTRY(U3_retl_o2_and_7_plus_GS_plus_8)
> > add GLOBAL_SPARE, 8, GLOBAL_SPARE
> > and %o2, 7, %o2
> > retl
> > - add %o2, GLOBAL_SPARE, %o2
> > + add %o2, GLOBAL_SPARE, %o0
> > ENDPROC(U3_retl_o2_and_7_plus_GS_plus_8)
> > #endif
> >
>
> Backing out my debugging patch and adding this one instead
> gave me a working kernel that doesn't OOPS. Thanks.
>
> Tested-by: Mikael Pettersson <mikpelinux@xxxxxxxxx>

Great, thanks for testing.

This is the final patch I committed:

====================