driver inclusion category: feature bugzilla: https://atomgit.com/openeuler/kernel/issues/8904 ---------------------------------------------------------------------- For keep kabi of vcpu_sysreg, add CONFIG_ENABLE_KVM_FPMR to isolate this member. Signed-off-by: Qinxin Xia <xiaqinxin@huawei.com> Signed-off-by: Hongye Lin <linhongye@h-partners.com> --- arch/arm64/include/asm/kvm_host.h | 2 ++ arch/arm64/kvm/Kconfig | 5 +++++ arch/arm64/kvm/sys_regs.c | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h index d5d867d21658..e4b3fd9bc8ef 100644 --- a/arch/arm64/include/asm/kvm_host.h +++ b/arch/arm64/include/asm/kvm_host.h @@ -418,7 +418,9 @@ enum vcpu_sysreg { PIR_EL1, /* Permission Indirection Register 1 (EL1) */ PIRE0_EL1, /* Permission Indirection Register 0 (EL1) */ +#ifdef CONFIG_ENABLE_KVM_FPMR FPMR, +#endif /* 32bit specific registers. */ DACR32_EL2, /* Domain Access Control Register */ diff --git a/arch/arm64/kvm/Kconfig b/arch/arm64/kvm/Kconfig index dbb1a70fbad7..b5d8cb344f4d 100644 --- a/arch/arm64/kvm/Kconfig +++ b/arch/arm64/kvm/Kconfig @@ -105,6 +105,11 @@ config KVM_ARM_MULTI_LPI_TRANSLATE_CACHE depends on ARM_GIC_V3_ITS default n +config ENABLE_KVM_FPMR + bool "Enable FEAT_FPMR in KVM" + depends on KVM + default n + config ARCH_VCPU_STAT bool "export kvm exits to vcpu_stat" depends on KVM diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c index 3216c1124ebb..8abcc9d9b9fc 100644 --- a/arch/arm64/kvm/sys_regs.c +++ b/arch/arm64/kvm/sys_regs.c @@ -1566,6 +1566,7 @@ static unsigned int sve_visibility(const struct kvm_vcpu *vcpu, return REG_HIDDEN; } +#ifdef CONFIG_ENABLE_KVM_FPMR static unsigned int fp8_visibility(const struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd) { @@ -1574,6 +1575,7 @@ static unsigned int fp8_visibility(const struct kvm_vcpu *vcpu, return REG_HIDDEN; } +#endif static u64 read_sanitised_id_aa64pfr0_el1(struct kvm_vcpu *vcpu, const struct sys_reg_desc *rd) @@ -2668,8 +2670,11 @@ static const struct sys_reg_desc sys_reg_descs[] = { CTR_EL0_L1Ip_MASK | CTR_EL0_IminLine_MASK), { SYS_DESC(SYS_SVCR), undef_access }, + +#ifdef CONFIG_ENABLE_KVM_FPMR { SYS_DESC(SYS_FPMR), undef_access, reset_val, FPMR, 0, .visibility = fp8_visibility }, +#endif { PMU_SYS_REG(PMCR_EL0), .access = access_pmcr, .reset = reset_pmcr, .reg = PMCR_EL0, .get_user = get_pmcr, .set_user = set_pmcr }, -- 2.25.1