Quoting Claudio Imbrenda (2024-10-01 13:36:40) [...] > diff --git a/s390x/edat.c b/s390x/edat.c > index 16138397..1f582efc 100644 > --- a/s390x/edat.c > +++ b/s390x/edat.c [...] > @@ -206,7 +208,21 @@ static void test_edat2(void) > /* Prefixing should not work with huge pages, just like large pages */ > report(!memcmp(0, VIRT(prefix_buf), LC_SIZE) && > !memcmp(prefix_buf, VIRT(0), LC_SIZE), > - "pmd, large, prefixing"); > + "pud, large, prefixing"); > + > + mem_end = get_ram_size(); > + if (mem_end >= BIT_ULL(REGION3_SHIFT)) { Do you mind introducting REGION3_SIZE like the kernel has? > + report_skip("pud spanning end of memory"); > + } else { > + for (i = 0; i < mem_end; i += PAGE_SIZE) > + READ_ONCE(*(uint64_t *)VIRT(i)); > + for (i = mem_end; i < BIT_ULL(REGION3_SHIFT); i += PAGE_SIZE) { > + expect_pgm_int(); > + READ_ONCE(*(uint64_t *)VIRT(i)); Would a write behave any different here? With or without the suggestions above: Reviewed-by: Nico Boehr <nrb@xxxxxxxxxxxxx>