On Mon, 27 Jun 2022 17:24:11 +0200 Janis Schoetterl-Glausch <scgl@xxxxxxxxxxxxx> wrote: > According to the architecture, SET PREFIX must try to access the new > prefix area and recognize an addressing exception if the area is not > accessible. > Test that the exception occurs when we try to set a prefix higher > than the available memory. > > Signed-off-by: Janis Schoetterl-Glausch <scgl@xxxxxxxxxxxxx> thanks, queued > --- > > v1 -> v2 > * report skip if we're running with too much memory (thanks Claudio) > > > s390x/intercept.c | 16 ++++++++++++++++ > 1 file changed, 16 insertions(+) > > diff --git a/s390x/intercept.c b/s390x/intercept.c > index 86e57e11..54bed5a4 100644 > --- a/s390x/intercept.c > +++ b/s390x/intercept.c > @@ -74,6 +74,22 @@ static void test_spx(void) > expect_pgm_int(); > asm volatile(" spx 0(%0) " : : "r"(-8L)); > check_pgm_int_code(PGM_INT_CODE_ADDRESSING); > + > + new_prefix = get_ram_size() & 0x7fffe000; > + if (get_ram_size() - new_prefix < 2 * PAGE_SIZE) { > + expect_pgm_int(); > + asm volatile("spx %0 " : : "Q"(new_prefix)); > + check_pgm_int_code(PGM_INT_CODE_ADDRESSING); > + > + /* > + * Cannot test inaccessibility of the second page the same way. > + * If we try to use the last page as first half of the prefix > + * area and our ram size is a multiple of 8k, after SPX aligns > + * the address to 8k we have a completely accessible area. > + */ > + } else { > + report_skip("inaccessible prefix area"); > + } > } > > /* Test the STORE CPU ADDRESS instruction */ > > base-commit: 110c69492b53f0070e1bbce986fb635e72a423b4