Let's make sure we can restart a cpu that is already running. Restarting it if it is stopped is implicitely tested by the the other restart calls in the smp test. Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> --- s390x/smp.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/s390x/smp.c b/s390x/smp.c index 48321f4e346dc71d..79cdc1f6a4b0b491 100644 --- a/s390x/smp.c +++ b/s390x/smp.c @@ -52,6 +52,24 @@ static void test_start(void) report(1, "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_addr(1); + struct lowcore *lc = cpu->lowcore; + + lc->restart_new_psw.mask = extract_psw_mask(); + lc->restart_new_psw.addr = (unsigned long)test_func; + + set_flag(0); + smp_cpu_restart(1); + wait_for_flag(); + report(1, "restart while running"); +} + static void test_stop(void) { smp_cpu_stop(1); @@ -295,6 +313,7 @@ int main(void) smp_cpu_stop(1); test_start(); + test_restart(); test_stop(); test_stop_store_status(); test_store_status(); -- 2.25.1