Re: [RFC PATCH 04/14] sparc64: load shared id into context register 1

From: Sam Ravnborg
Date: Wed Dec 21 2016 - 13:16:24 EST


On Sun, Dec 18, 2016 at 04:22:31PM -0800, Mike Kravetz wrote:
> On 12/16/2016 11:45 PM, Sam Ravnborg wrote:
> > Hi Mike
> >
> >> diff --git a/arch/sparc/kernel/fpu_traps.S b/arch/sparc/kernel/fpu_traps.S
> >> index 336d275..f85a034 100644
> >> --- a/arch/sparc/kernel/fpu_traps.S
> >> +++ b/arch/sparc/kernel/fpu_traps.S
> >> @@ -73,6 +73,16 @@ do_fpdis:
> >> ldxa [%g3] ASI_MMU, %g5
> >> .previous
> >>
> >> +661: nop
> >> + nop
> >> + .section .sun4v_2insn_patch, "ax"
> >> + .word 661b
> >> + mov SECONDARY_CONTEXT_R1, %g3
> >> + ldxa [%g3] ASI_MMU, %g4
> >> + .previous
> >> + /* Unnecessary on sun4u and pre-Niagara 2 sun4v */
> >> + mov SECONDARY_CONTEXT, %g3
> >> +
> >> sethi %hi(sparc64_kern_sec_context), %g2
> >
> > You missed the second instruction to patch with here.
> > This bug repeats itself further down.
> >
> > Just noted while briefly reading the code - did not really follow the code.
>
> Hi Sam,
>
> This is my first sparc assembly code, so I could certainly have this
> wrong.

Nope. I was to quick in my reading and in the reply.
when I looked at this with fresh eyes it looked perfectly OK.

That is to say - the patching part. I did not follow the code logic.

Sam