[RFC PATCH v2 14/28] KVM: arm64: Make ID_MMFR0_EL1 writable
Reiji Watanabe
reijiw at google.com
Tue Nov 2 23:25:06 PDT 2021
This patch adds id_reg_info for ID_MMFR0_EL1 to make it writable
by userspace.
Signed-off-by: Reiji Watanabe <reijiw at google.com>
---
arch/arm64/kvm/sys_regs.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index f04067fdaa85..cfa3624ee081 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -840,6 +840,12 @@ static struct id_reg_info id_dfr1_el1_info = {
.ftr_check_types = S_FCT(ID_DFR1_MTPMU_SHIFT, FCT_LOWER_SAFE),
};
+static struct id_reg_info id_mmfr0_el1_info = {
+ .sys_reg = SYS_ID_MMFR0_EL1,
+ .ftr_check_types = S_FCT(ID_MMFR0_INNERSHR_SHIFT, FCT_LOWER_SAFE) |
+ S_FCT(ID_MMFR0_OUTERSHR_SHIFT, FCT_LOWER_SAFE),
+};
+
/*
* An ID register that needs special handling to control the value for the
* guest must have its own id_reg_info in id_reg_info_table.
@@ -850,6 +856,7 @@ static struct id_reg_info id_dfr1_el1_info = {
#define GET_ID_REG_INFO(id) (id_reg_info_table[IDREG_IDX(id)])
static struct id_reg_info *id_reg_info_table[KVM_ARM_ID_REG_MAX_NUM] = {
[IDREG_IDX(SYS_ID_DFR0_EL1)] = &id_dfr0_el1_info,
+ [IDREG_IDX(SYS_ID_MMFR0_EL1)] = &id_mmfr0_el1_info,
[IDREG_IDX(SYS_ID_DFR1_EL1)] = &id_dfr1_el1_info,
[IDREG_IDX(SYS_ID_AA64PFR0_EL1)] = &id_aa64pfr0_el1_info,
[IDREG_IDX(SYS_ID_AA64PFR1_EL1)] = &id_aa64pfr1_el1_info,
--
2.33.1.1089.g2158813163f-goog
More information about the linux-arm-kernel
mailing list