On 1/23/20 2:32 PM, David Hildenbrand wrote: > On 21.01.20 14:42, Janosch Frank wrote: >> Up to now a secondary cpu could have returned from the function it was >> executing and ending up somewhere in cstart64.S. This was mostly >> circumvented by an endless loop in the function that it executed. >> >> Let's add a loop to the end of the cpu setup, so we don't have to rely >> on added loops in the tests. >> >> Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> >> --- >> s390x/cstart64.S | 2 ++ >> 1 file changed, 2 insertions(+) >> >> diff --git a/s390x/cstart64.S b/s390x/cstart64.S >> index 9af6bb3..5fd8d2f 100644 >> --- a/s390x/cstart64.S >> +++ b/s390x/cstart64.S >> @@ -162,6 +162,8 @@ smp_cpu_setup_state: >> /* We should only go once through cpu setup and not for every restart */ >> stg %r14, GEN_LC_RESTART_NEW_PSW + 8 >> br %r14 >> + /* If the function returns, just loop here */ >> +0: j 0 >> >> pgm_int: >> SAVE_REGS >> > > This patch collides with a patch I have still queued > > Author: Janosch Frank <frankja@xxxxxxxxxxxxx> > Date: Wed Dec 11 06:59:22 2019 -0500 > > s390x: smp: Use full PSW to bringup new cpu > > Up to now we ignored the psw mask and only used the psw address when > bringing up a new cpu. For DAT we need to also load the mask, so let's > do that. > > Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> > Reviewed-by: David Hildenbrand <david@xxxxxxxxxx> > Message-Id: <20191211115923.9191-2-frankja@xxxxxxxxxxxxx> > Signed-off-by: David Hildenbrand <david@xxxxxxxxxx> > > > In that patch we use a lpswe to jump to the target code, not a br. So the > return address will no longer be stored in %14 and this code here would stop working > AFAIKS. > > Shall I drop that patch for now? Please drop "s390x: smp: Use full PSW to bringup new cpu" I will send out a fixed version of that patch soonish. It will load a label for lpswe into r14 before doing the lpswe.