This is the next iteration of this series trying to plug some of our RAS holes (no pun intended...). See [1] for the original series. The difference with the previous drop is that we don't try to expose a canonical encoding RASv1p1. Which means you must migrate between similar implementations for now. I've also added a cleanup patch at the end, which can be dropped. Patches on top of v6.17-rc1. * From v2 [2]: - Drop the canonical RASv1p1 advertisement - Expose ID_AA64PFR1_EL1.RAS_frac as a writable field - Added an extra patch dropping ARM64_FEATURE_MASK(), as it is both useless and annoying - Pick RB from Joey (thanks!) * From v1 [1]: - Bunch of patches picked by Oliver (thanks!) - Added missing SYS_ERXMISC{2,3}_EL1 from the list of handled RAS registers - Added some rationale about the advertising of RASv1p1 (Cornelia) - Picked AB from Catalin (thanks!) [1] https://lore.kernel.org/kvmarm/20250721101955.535159-1-maz@xxxxxxxxxx [2] https://lore.kernel.org/kvmarm/20250806165615.1513164-1-maz@xxxxxxxxxx Marc Zyngier (6): arm64: Add capability denoting FEAT_RASv1p1 KVM: arm64: Handle RASv1p1 registers KVM: arm64: Ignore HCR_EL2.FIEN set by L1 guest's EL2 KVM: arm64: Make ID_AA64PFR0_EL1.RAS writable KVM: arm64: Make ID_AA64PFR1_EL1.RAS_frac writable KVM: arm64: Get rid of ARM64_FEATURE_MASK() arch/arm64/include/asm/sysreg.h | 3 - arch/arm64/kernel/cpufeature.c | 24 ++++++ arch/arm64/kvm/arm.c | 8 +- arch/arm64/kvm/hyp/vhe/switch.c | 5 +- arch/arm64/kvm/nested.c | 3 +- arch/arm64/kvm/sys_regs.c | 75 +++++++++++++------ arch/arm64/tools/cpucaps | 1 + tools/arch/arm64/include/asm/sysreg.h | 3 - .../selftests/kvm/arm64/aarch32_id_regs.c | 2 +- .../selftests/kvm/arm64/debug-exceptions.c | 12 +-- .../testing/selftests/kvm/arm64/no-vgic-v3.c | 4 +- .../selftests/kvm/arm64/page_fault_test.c | 6 +- .../testing/selftests/kvm/arm64/set_id_regs.c | 8 +- .../selftests/kvm/arm64/vpmu_counter_access.c | 2 +- .../selftests/kvm/lib/arm64/processor.c | 6 +- 15 files changed, 107 insertions(+), 55 deletions(-) -- 2.39.2