mbox series

[v3,0/2] arm/ptw: fix missing sctlr.{u}wxn handling in get_phys_addr_v6

Message ID 20241118152507.45046-1-paskripkin@gmail.com (mailing list archive)
Headers show
Series arm/ptw: fix missing sctlr.{u}wxn handling in get_phys_addr_v6 | expand

Message

Pavel Skripkin Nov. 18, 2024, 3:25 p.m. UTC
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-paskripkin@gmail.com/
v1: https://lore.kernel.org/qemu-devel/20241114165900.6399-1-paskripkin@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(-)

Comments

Peter Maydell Nov. 18, 2024, 5:52 p.m. UTC | #1
On Mon, 18 Nov 2024 at 15:25, Pavel Skripkin <paskripkin@gmail.com> wrote:
>
> 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-paskripkin@gmail.com/
> v1: https://lore.kernel.org/qemu-devel/20241114165900.6399-1-paskripkin@gmail.com/
>
> Pavel Skripkin (2):
>   arm/ptw: make get_S1prot accept decoded AP
>   arm/ptw: use get_S1prot in get_phys_addr_v6

Applied to target-arm.next, thanks.

-- PMM