Skip to content

Commit d5a32b6

Browse files
jingzhangosoupton
authored andcommitted
KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1
Allow userspace to modify the guest-visible values of these ID registers. Prevent changes to any of the virtualization features until KVM picks up support for nested and we have a handle on managing NV features. Signed-off-by: Jing Zhang <[email protected]> [oliver: prevent changes to EL2 features for now] Reviewed-by: Marc Zyngier <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Oliver Upton <[email protected]>
1 parent 56d77aa commit d5a32b6

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

arch/arm64/kvm/sys_regs.c

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2099,9 +2099,23 @@ static const struct sys_reg_desc sys_reg_descs[] = {
20992099
ID_UNALLOCATED(6,7),
21002100

21012101
/* CRm=7 */
2102-
ID_SANITISED(ID_AA64MMFR0_EL1),
2103-
ID_SANITISED(ID_AA64MMFR1_EL1),
2104-
ID_SANITISED(ID_AA64MMFR2_EL1),
2102+
ID_WRITABLE(ID_AA64MMFR0_EL1, ~(ID_AA64MMFR0_EL1_RES0 |
2103+
ID_AA64MMFR0_EL1_TGRAN4_2 |
2104+
ID_AA64MMFR0_EL1_TGRAN64_2 |
2105+
ID_AA64MMFR0_EL1_TGRAN16_2)),
2106+
ID_WRITABLE(ID_AA64MMFR1_EL1, ~(ID_AA64MMFR1_EL1_RES0 |
2107+
ID_AA64MMFR1_EL1_HCX |
2108+
ID_AA64MMFR1_EL1_XNX |
2109+
ID_AA64MMFR1_EL1_TWED |
2110+
ID_AA64MMFR1_EL1_XNX |
2111+
ID_AA64MMFR1_EL1_VH |
2112+
ID_AA64MMFR1_EL1_VMIDBits)),
2113+
ID_WRITABLE(ID_AA64MMFR2_EL1, ~(ID_AA64MMFR2_EL1_RES0 |
2114+
ID_AA64MMFR2_EL1_EVT |
2115+
ID_AA64MMFR2_EL1_FWB |
2116+
ID_AA64MMFR2_EL1_IDS |
2117+
ID_AA64MMFR2_EL1_NV |
2118+
ID_AA64MMFR2_EL1_CCIDX)),
21052119
ID_SANITISED(ID_AA64MMFR3_EL1),
21062120
ID_UNALLOCATED(7,4),
21072121
ID_UNALLOCATED(7,5),

0 commit comments

Comments
 (0)