Skip to content

Commit 169e52f

Browse files
jingzhangosabuehaze14
authored andcommitted
KVM: arm64: Enable writable for ID_AA64MMFR{0, 1, 2}_EL1
Enable writable from userspace for ID_AA64MMFR{0, 1, 2}_EL1. Added a macro for defining general writable idregs. Signed-off-by: Jing Zhang <jingzhangos@google.com>
1 parent 1a68acd commit 169e52f

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

arch/arm64/kvm/sys_regs.c

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1758,6 +1758,16 @@ static unsigned int mte_visibility(const struct kvm_vcpu *vcpu,
17581758
.val = 0, \
17591759
}
17601760

1761+
#define ID_SANITISED_WRITABLE(name) { \
1762+
SYS_DESC(SYS_##name), \
1763+
.access = access_id_reg, \
1764+
.get_user = get_id_reg, \
1765+
.set_user = set_id_reg, \
1766+
.visibility = id_visibility, \
1767+
.reset = general_read_kvm_sanitised_reg,\
1768+
.val = GENMASK(63, 0), \
1769+
}
1770+
17611771
/* sys_reg_desc initialiser for known cpufeature ID registers */
17621772
#define AA32_ID_SANITISED(name) { \
17631773
SYS_DESC(SYS_##name), \
@@ -1953,14 +1963,14 @@ static const struct sys_reg_desc sys_reg_descs[] = {
19531963
ID_UNALLOCATED(6,7),
19541964

19551965
/* CRm=7 */
1956-
ID_SANITISED(ID_AA64MMFR0_EL1),
1957-
ID_SANITISED(ID_AA64MMFR1_EL1),
1966+
ID_SANITISED_WRITABLE(ID_AA64MMFR0_EL1),
1967+
ID_SANITISED_WRITABLE(ID_AA64MMFR1_EL1),
19581968
{ SYS_DESC(SYS_ID_AA64MMFR2_EL1),
19591969
.access = access_id_reg,
19601970
.get_user = get_id_reg,
19611971
.set_user = set_id_reg,
19621972
.reset = read_sanitised_id_aa64mmfr2_el1,
1963-
.val = 0, },
1973+
.val = GENMASK(63, 0), },
19641974
ID_UNALLOCATED(7,3),
19651975
ID_UNALLOCATED(7,4),
19661976
ID_UNALLOCATED(7,5),

0 commit comments

Comments
 (0)