Message ID | 20190920075020.1698-1-frankja@linux.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [kvm-unit-tests] s390x: Fix stsi unaligned test and add selector tests | expand |
On 20.09.19 09:50, Janosch Frank wrote: > Alignment and selectors test order is not specified and so, if you > have an unaligned address and invalid selectors it's up to the > hypervisor to decide which error is presented. > > Let's add valid selectors to the unalignmnet test and add selector > tests. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> > --- > s390x/stsi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/s390x/stsi.c b/s390x/stsi.c > index 7232cb0..c5bd0a2 100644 > --- a/s390x/stsi.c > +++ b/s390x/stsi.c > @@ -35,7 +35,7 @@ static void test_specs(void) > > report_prefix_push("unaligned"); > expect_pgm_int(); > - stsi(pagebuf + 42, 1, 0, 0); > + stsi(pagebuf + 42, 1, 1, 1); > check_pgm_int_code(PGM_INT_CODE_SPECIFICATION); > report_prefix_pop(); > > @@ -71,6 +71,8 @@ static inline unsigned long stsi_get_fc(void *addr) > static void test_fc(void) > { > report("invalid fc", stsi(pagebuf, 7, 0, 0) == 3); > + report("invalid selector 1", stsi(pagebuf, 1, 0, 1) == 3); > + report("invalid selector 2", stsi(pagebuf, 1, 1, 0) == 3); > report("query fc >= 2", stsi_get_fc(pagebuf) >= 2); > } > >
On 20.09.19 09:50, Janosch Frank wrote: > Alignment and selectors test order is not specified and so, if you > have an unaligned address and invalid selectors it's up to the > hypervisor to decide which error is presented. > > Let's add valid selectors to the unalignmnet test and add selector > tests. > > Signed-off-by: Janosch Frank <frankja@linux.ibm.com> > --- > s390x/stsi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/s390x/stsi.c b/s390x/stsi.c > index 7232cb0..c5bd0a2 100644 > --- a/s390x/stsi.c > +++ b/s390x/stsi.c > @@ -35,7 +35,7 @@ static void test_specs(void) > > report_prefix_push("unaligned"); > expect_pgm_int(); > - stsi(pagebuf + 42, 1, 0, 0); > + stsi(pagebuf + 42, 1, 1, 1); > check_pgm_int_code(PGM_INT_CODE_SPECIFICATION); > report_prefix_pop(); > > @@ -71,6 +71,8 @@ static inline unsigned long stsi_get_fc(void *addr) > static void test_fc(void) > { > report("invalid fc", stsi(pagebuf, 7, 0, 0) == 3); > + report("invalid selector 1", stsi(pagebuf, 1, 0, 1) == 3); > + report("invalid selector 2", stsi(pagebuf, 1, 1, 0) == 3); > report("query fc >= 2", stsi_get_fc(pagebuf) >= 2); > } > > Acked-by: David Hildenbrand <david@redhat.com>
On 20/09/2019 10.10, David Hildenbrand wrote: > On 20.09.19 09:50, Janosch Frank wrote: >> Alignment and selectors test order is not specified and so, if you >> have an unaligned address and invalid selectors it's up to the >> hypervisor to decide which error is presented. >> >> Let's add valid selectors to the unalignmnet test and add selector >> tests. >> >> Signed-off-by: Janosch Frank <frankja@linux.ibm.com> >> --- >> s390x/stsi.c | 4 +++- >> 1 file changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/s390x/stsi.c b/s390x/stsi.c >> index 7232cb0..c5bd0a2 100644 >> --- a/s390x/stsi.c >> +++ b/s390x/stsi.c >> @@ -35,7 +35,7 @@ static void test_specs(void) >> >> report_prefix_push("unaligned"); >> expect_pgm_int(); >> - stsi(pagebuf + 42, 1, 0, 0); >> + stsi(pagebuf + 42, 1, 1, 1); >> check_pgm_int_code(PGM_INT_CODE_SPECIFICATION); >> report_prefix_pop(); >> >> @@ -71,6 +71,8 @@ static inline unsigned long stsi_get_fc(void *addr) >> static void test_fc(void) >> { >> report("invalid fc", stsi(pagebuf, 7, 0, 0) == 3); While you're at it, wouldn't it be better to use "(pagebuf, 7, 1, 1)" here? Thomas >> + report("invalid selector 1", stsi(pagebuf, 1, 0, 1) == 3); >> + report("invalid selector 2", stsi(pagebuf, 1, 1, 0) == 3); >> report("query fc >= 2", stsi_get_fc(pagebuf) >= 2); >> } >> >> > > Acked-by: David Hildenbrand <david@redhat.com> >
On 9/23/19 10:10 AM, Thomas Huth wrote: > On 20/09/2019 10.10, David Hildenbrand wrote: >> On 20.09.19 09:50, Janosch Frank wrote: >>> Alignment and selectors test order is not specified and so, if you >>> have an unaligned address and invalid selectors it's up to the >>> hypervisor to decide which error is presented. >>> >>> Let's add valid selectors to the unaligned test and add selector >>> tests. >>> >>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com> >>> --- >>> s390x/stsi.c | 4 +++- >>> 1 file changed, 3 insertions(+), 1 deletion(-) >>> >>> diff --git a/s390x/stsi.c b/s390x/stsi.c >>> index 7232cb0..c5bd0a2 100644 >>> --- a/s390x/stsi.c >>> +++ b/s390x/stsi.c >>> @@ -35,7 +35,7 @@ static void test_specs(void) >>> >>> report_prefix_push("unaligned"); >>> expect_pgm_int(); >>> - stsi(pagebuf + 42, 1, 0, 0); >>> + stsi(pagebuf + 42, 1, 1, 1); >>> check_pgm_int_code(PGM_INT_CODE_SPECIFICATION); >>> report_prefix_pop(); >>> >>> @@ -71,6 +71,8 @@ static inline unsigned long stsi_get_fc(void *addr) >>> static void test_fc(void) >>> { >>> report("invalid fc", stsi(pagebuf, 7, 0, 0) == 3); > > While you're at it, wouldn't it be better to use "(pagebuf, 7, 1, 1)" here? The selectors depend on the command, so they need to be checked after the command. I don't think it would make much sense to change the zeroes here. > > Thomas > > >>> + report("invalid selector 1", stsi(pagebuf, 1, 0, 1) == 3); >>> + report("invalid selector 2", stsi(pagebuf, 1, 1, 0) == 3); >>> report("query fc >= 2", stsi_get_fc(pagebuf) >= 2); >>> } >>> >>> >> >> Acked-by: David Hildenbrand <david@redhat.com> >> >
On 23/09/2019 11.48, Janosch Frank wrote: > On 9/23/19 10:10 AM, Thomas Huth wrote: >> On 20/09/2019 10.10, David Hildenbrand wrote: >>> On 20.09.19 09:50, Janosch Frank wrote: >>>> Alignment and selectors test order is not specified and so, if you >>>> have an unaligned address and invalid selectors it's up to the >>>> hypervisor to decide which error is presented. >>>> >>>> Let's add valid selectors to the unaligned test and add selector >>>> tests. >>>> >>>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com> >>>> --- >>>> s390x/stsi.c | 4 +++- >>>> 1 file changed, 3 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/s390x/stsi.c b/s390x/stsi.c >>>> index 7232cb0..c5bd0a2 100644 >>>> --- a/s390x/stsi.c >>>> +++ b/s390x/stsi.c >>>> @@ -35,7 +35,7 @@ static void test_specs(void) >>>> >>>> report_prefix_push("unaligned"); >>>> expect_pgm_int(); >>>> - stsi(pagebuf + 42, 1, 0, 0); >>>> + stsi(pagebuf + 42, 1, 1, 1); >>>> check_pgm_int_code(PGM_INT_CODE_SPECIFICATION); >>>> report_prefix_pop(); >>>> >>>> @@ -71,6 +71,8 @@ static inline unsigned long stsi_get_fc(void *addr) >>>> static void test_fc(void) >>>> { >>>> report("invalid fc", stsi(pagebuf, 7, 0, 0) == 3); >> >> While you're at it, wouldn't it be better to use "(pagebuf, 7, 1, 1)" here? > > The selectors depend on the command, so they need to be checked after > the command. I don't think it would make much sense to change the zeroes > here. OK, fair. Patche queued. Thomas
diff --git a/s390x/stsi.c b/s390x/stsi.c index 7232cb0..c5bd0a2 100644 --- a/s390x/stsi.c +++ b/s390x/stsi.c @@ -35,7 +35,7 @@ static void test_specs(void) report_prefix_push("unaligned"); expect_pgm_int(); - stsi(pagebuf + 42, 1, 0, 0); + stsi(pagebuf + 42, 1, 1, 1); check_pgm_int_code(PGM_INT_CODE_SPECIFICATION); report_prefix_pop(); @@ -71,6 +71,8 @@ static inline unsigned long stsi_get_fc(void *addr) static void test_fc(void) { report("invalid fc", stsi(pagebuf, 7, 0, 0) == 3); + report("invalid selector 1", stsi(pagebuf, 1, 0, 1) == 3); + report("invalid selector 2", stsi(pagebuf, 1, 1, 0) == 3); report("query fc >= 2", stsi_get_fc(pagebuf) >= 2); }
Alignment and selectors test order is not specified and so, if you have an unaligned address and invalid selectors it's up to the hypervisor to decide which error is presented. Let's add valid selectors to the unalignmnet test and add selector tests. Signed-off-by: Janosch Frank <frankja@linux.ibm.com> --- s390x/stsi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)