On Fri, 2022-03-04 at 11:43 +0100, Janosch Frank wrote: > On 3/3/22 22:04, Eric Farman wrote: > > test_restart() makes two smp_cpu_restart() calls against CPU 1. > > It claims to perform both of them against running (operating) CPUs, > > but the first invocation tries to achieve this by calling > > smp_cpu_stop() to CPU 0. This will be rejected by the library. > > I played myself there :) :) > > > Let's fix this by making the first restart operate on a stopped > > CPU, > > to ensure it gets test coverage instead of relying on other > > callers. > > > > Fixes: 166da884d ("s390x: smp: Add restart when running test") > > Signed-off-by: Eric Farman <farman@xxxxxxxxxxxxx> > > If you want to you can add a report_pass() after the first wait flag. I did in patch 5. I can move that here, but that patch has some additional prefix changes for those reports, so didn't want to move TOO much of that to this fix. > > Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Thank you! > > > --- > > s390x/smp.c | 8 ++------ > > 1 file changed, 2 insertions(+), 6 deletions(-) > > > > diff --git a/s390x/smp.c b/s390x/smp.c > > index 068ac74d..2f4af820 100644 > > --- a/s390x/smp.c > > +++ b/s390x/smp.c > > @@ -50,10 +50,6 @@ static void test_start(void) > > report_pass("start"); > > } > > > > -/* > > - * Does only test restart when the target is running. > > - * The other tests do restarts when stopped multiple times > > already. > > - */ > > static void test_restart(void) > > { > > struct cpu *cpu = smp_cpu_from_idx(1); > > @@ -62,8 +58,8 @@ static void test_restart(void) > > lc->restart_new_psw.mask = extract_psw_mask(); > > lc->restart_new_psw.addr = (unsigned long)test_func; > > > > - /* Make sure cpu is running */ > > - smp_cpu_stop(0); > > + /* Make sure cpu is stopped */ > > + smp_cpu_stop(1); > > set_flag(0); > > smp_cpu_restart(1); > > wait_for_flag();