We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 2c433f7 commit bed9b8eCopy full SHA for bed9b8e
arch/arm64/kvm/pmu-emul.c
@@ -1231,7 +1231,17 @@ u8 kvm_arm_pmu_get_pmuver_limit(void)
1231
pmuver = SYS_FIELD_GET(ID_AA64DFR0_EL1, PMUVer,
1232
read_sanitised_ftr_reg(SYS_ID_AA64DFR0_EL1));
1233
1234
- /* Treat IMPLEMENTATION DEFINED functionality as unimplemented */
+ /*
1235
+ * Spoof a barebones PMUv3 implementation if the system supports IMPDEF
1236
+ * traps of the PMUv3 sysregs
1237
+ */
1238
+ if (cpus_have_final_cap(ARM64_WORKAROUND_PMUV3_IMPDEF_TRAPS))
1239
+ return ID_AA64DFR0_EL1_PMUVer_IMP;
1240
+
1241
1242
+ * Otherwise, treat IMPLEMENTATION DEFINED functionality as
1243
+ * unimplemented
1244
1245
if (pmuver == ID_AA64DFR0_EL1_PMUVer_IMP_DEF)
1246
return 0;
1247
0 commit comments