We observed failing WXN tests in our OS which we tracked down to missing WXN handling in qemu.
The problem was in that short descriptor format walker did not respect WXN bit. To fix it, make it possible to call get_S1prot() from get_phys_addr_v6(). Tested localy that all permission-related tests in our OS passed on following platforms: - arm64-virt - arm-vexpress (v7) - arm-virt (v7) Changes from v2: - Fix naming - Fix too early ap decoding in get_phys_addr_lpae - Refactor a bit security-space related code in get_phys_addr_v6() Changes from v1: - Fix style errors - Add cover letter - Use get_S1prot() instead of open-coded checks v2: https://lore.kernel.org/qemu-devel/20241117134931.37249-1-paskrip...@gmail.com/ v1: https://lore.kernel.org/qemu-devel/20241114165900.6399-1-paskrip...@gmail.com/ Pavel Skripkin (2): arm/ptw: make get_S1prot accept decoded AP arm/ptw: use get_S1prot in get_phys_addr_v6 target/arm/ptw.c | 69 ++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 38 deletions(-) -- 2.47.0