On Wed, 10 Aug 2022 09:46:14 +0200 Nico Boehr <nrb@xxxxxxxxxxxxx> wrote: > We have the nice array to test SIGP calls with invalid CPU addresses. > Move the SIGP cases there to eliminate some of the duplicated code in > test_emcall and test_cond_emcall. > > Since adding coverage for invalid CPU addresses in the ecall case is now > trivial, do that as well. > > Signed-off-by: Nico Boehr <nrb@xxxxxxxxxxxxx> > Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxx> Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > --- > s390x/smp.c | 18 +++--------------- > 1 file changed, 3 insertions(+), 15 deletions(-) > > diff --git a/s390x/smp.c b/s390x/smp.c > index 0df4751f9cee..34ae91c3fe12 100644 > --- a/s390x/smp.c > +++ b/s390x/smp.c > @@ -30,6 +30,9 @@ static const struct sigp_invalid_cases cases_invalid_cpu_addr[] = { > { SIGP_STOP, "stop with invalid CPU address" }, > { SIGP_START, "start with invalid CPU address" }, > { SIGP_CPU_RESET, "reset with invalid CPU address" }, > + { SIGP_COND_EMERGENCY_SIGNAL, "conditional emcall with invalid CPU address" }, > + { SIGP_EMERGENCY_SIGNAL, "emcall with invalid CPU address" }, > + { SIGP_EXTERNAL_CALL, "ecall with invalid CPU address" }, > { INVALID_ORDER_CODE, "invalid order code and CPU address" }, > { SIGP_SENSE, "sense with invalid CPU address" }, > { SIGP_STOP_AND_STORE_STATUS, "stop and store status with invalid CPU address" }, > @@ -329,7 +332,6 @@ static void emcall(void) > static void test_emcall(void) > { > struct psw psw; > - int cc; > psw.mask = extract_psw_mask(); > psw.addr = (unsigned long)emcall; > > @@ -343,13 +345,6 @@ static void test_emcall(void) > wait_for_flag(); > smp_cpu_stop(1); > > - report_prefix_push("invalid CPU address"); > - > - cc = sigp(INVALID_CPU_ADDRESS, SIGP_EMERGENCY_SIGNAL, 0, NULL); > - report(cc == 3, "CC = 3"); > - > - report_prefix_pop(); > - > report_prefix_pop(); > } > > @@ -368,13 +363,6 @@ static void test_cond_emcall(void) > goto out; > } > > - report_prefix_push("invalid CPU address"); > - > - cc = sigp(INVALID_CPU_ADDRESS, SIGP_COND_EMERGENCY_SIGNAL, 0, NULL); > - report(cc == 3, "CC = 3"); > - > - report_prefix_pop(); > - > report_prefix_push("success"); > set_flag(0); >