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

From: Mikael Pettersson
Date: Fri Aug 04 2017 - 04:02:39 EST


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>