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? -- Thanks, David / dhildenb