[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 0/3] tcg-arm: LPAE: fix and extend xn control
From: |
Andrew Jones |
Subject: |
[Qemu-devel] [PATCH v3 0/3] tcg-arm: LPAE: fix and extend xn control |
Date: |
Wed, 11 Mar 2015 19:06:04 +0100 |
This series fixes and extends the determination of whether or
not an address is executable for LPAE translations. The main
patch is 3/3, and describes the details in its commit message.
Patch 1/3 prepares for patch 2/3, which is prep for 3/3, and also
fixes a potential problem with checking access permissions on
v6 processors when they use the simple AP format.
Changes since v2:
* Collect NSTable bits into ns
* Explicitly check {prot,user}_rw against PAGE_READ. !{prot,user}_rw
means no read or write, but, since we can't have write without read,
it also means !({prot,user}_rw & PAGE_READ). Making this explicit
can reduce confusion when trying to determine with prot flag we
actually care about. [Peter Maydell]
Changes since v1:
* There are now 3 patches instead of 5. This is due to approaching
the prep patches in a different way. Most notably, simple AP
format is now handled with its own function. [Peter Maydell]
* A check of SCTLR_AFE is guarded with ARM_FEATURE_V6K [Peter Maydell]
* All other cleanups suggested by Peter Maydell.
Tested by booting Linux on mach-virt with cortex-a15 and cortex-a57
(just up to 'Unable to mount root fs'), and also with a kvm-unit-tests
test. The curious can check out the unit test here [1].
Thanks in advance for reviews!
drew
[1]
https://github.com/rhdrjones/kvm-unit-tests/commit/ee553e4bb795b0150e31c794bf8953dfb08d619a
Andrew Jones (3):
target-arm: convert check_ap to ap_to_rw_prot
target-arm: fix get_phys_addr_v6/SCTLR_AFE access check
target-arm: get_phys_addr_lpae: more xn control
target-arm/helper.c | 216 +++++++++++++++++++++++++++++++++++++---------------
1 file changed, 156 insertions(+), 60 deletions(-)
--
1.9.3
- [Qemu-devel] [PATCH v3 0/3] tcg-arm: LPAE: fix and extend xn control,
Andrew Jones <=