UPSTREAM: KVM: arm64: Expose the WFXT feature to guests
Plumb in the capability, and expose WFxT to guests when available. Signed-off-by: Marc Zyngier <maz@kernel.org> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Link: https://lore.kernel.org/r/20220419182755.601427-8-maz@kernel.org (cherry picked from commit 06e0b802583d7bbc075476d90da995ee3e6053d5) Signed-off-by: Will Deacon <willdeacon@google.com> Bug: 233587962 Bug: 233588291 Change-Id: Id8538e174d556366ea250dc02081f9c544ba42dd
This commit is contained in:
committed by
Will Deacon
parent
0d08c1e417
commit
12c65b32c1
@@ -2450,6 +2450,17 @@ static const struct arm64_cpu_capabilities arm64_features[] = {
|
|||||||
.matches = has_cpuid_feature,
|
.matches = has_cpuid_feature,
|
||||||
.min_field_value = 1,
|
.min_field_value = 1,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.desc = "WFx with timeout",
|
||||||
|
.capability = ARM64_HAS_WFXT,
|
||||||
|
.type = ARM64_CPUCAP_SYSTEM_FEATURE,
|
||||||
|
.sys_reg = SYS_ID_AA64ISAR2_EL1,
|
||||||
|
.sign = FTR_UNSIGNED,
|
||||||
|
.field_pos = ID_AA64ISAR2_WFXT_SHIFT,
|
||||||
|
.field_width = 4,
|
||||||
|
.matches = has_cpuid_feature,
|
||||||
|
.min_field_value = ID_AA64ISAR2_WFXT_SUPPORTED,
|
||||||
|
},
|
||||||
{},
|
{},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1143,6 +1143,8 @@ static u64 read_id_reg(const struct kvm_vcpu *vcpu,
|
|||||||
if (!vcpu_has_ptrauth(vcpu))
|
if (!vcpu_has_ptrauth(vcpu))
|
||||||
val &= ~(ARM64_FEATURE_MASK(ID_AA64ISAR2_APA3) |
|
val &= ~(ARM64_FEATURE_MASK(ID_AA64ISAR2_APA3) |
|
||||||
ARM64_FEATURE_MASK(ID_AA64ISAR2_GPA3));
|
ARM64_FEATURE_MASK(ID_AA64ISAR2_GPA3));
|
||||||
|
if (!cpus_have_final_cap(ARM64_HAS_WFXT))
|
||||||
|
val &= ~ARM64_FEATURE_MASK(ID_AA64ISAR2_WFXT);
|
||||||
break;
|
break;
|
||||||
case SYS_ID_AA64DFR0_EL1:
|
case SYS_ID_AA64DFR0_EL1:
|
||||||
/* Limit debug to ARMv8.0 */
|
/* Limit debug to ARMv8.0 */
|
||||||
|
|||||||
Reference in New Issue
Block a user