linux/arch/arm64/kvm
Shaoqin Huang 78c4446b5f KVM: arm64: Allow userspace to change ID_AA64PFR1_EL1
Allow userspace to change the guest-visible value of the register with
different way of handling:

  - Since the RAS and MPAM is not writable in the ID_AA64PFR0_EL1
    register, RAS_frac and MPAM_frac are also not writable in the
    ID_AA64PFR1_EL1 register.

  - The MTE is controlled by a separate UAPI (KVM_CAP_ARM_MTE) with an
    internal flag (KVM_ARCH_FLAG_MTE_ENABLED).
    So it's not writable.

  - For those fields which KVM doesn't know how to handle, they are not
    exposed to the guest (being disabled in the register read accessor),
    those fields value will always be 0.
    Those fields don't have a known behavior now, so don't advertise
    them to the userspace. Thus still not writable.
    Those fields include SME, RNDR_trap, NMI, GCS, THE, DF2, PFAR,
    MTE_frac, MTEX.

  - The BT, SSBS, CSV2_frac don't introduce any new registers which KVM
    doesn't know how to handle, they can be written without ill effect.
    So let them writable.

Besides, we don't do the crosscheck in KVM about the CSV2_frac even if
it depends on the value of CSV2, it should be made sure by the VMM
instead of KVM.

Signed-off-by: Shaoqin Huang <shahuang@redhat.com>
Link: https://lore.kernel.org/r/20240723072004.1470688-4-shahuang@redhat.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
2024-08-25 17:48:44 +01:00
..
hyp ARM: 2024-07-20 12:41:03 -07:00
vgic KVM: arm64: Disassociate vcpus from redistributor region on teardown 2024-06-06 08:54:15 +01:00
.gitignore
arch_timer.c KVM: arm64: Fix typos 2024-02-24 09:13:33 +00:00
arm.c KVM generic changes for 6.11 2024-07-16 09:51:36 -04:00
debug.c KVM: arm64: debug: fix kernel-doc warnings 2024-02-01 20:25:41 +00:00
emulate-nested.c Merge branch kvm-arm64/nv-tcr2 into kvmarm/next 2024-07-14 00:28:37 +00:00
fpsimd.c KVM: arm64: nv: Ensure correct VL is loaded before saving SVE state 2024-06-20 19:02:40 +00:00
guest.c KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode 2024-05-27 17:45:35 +01:00
handle_exit.c Merge branch kvm-arm64/nv-sve into kvmarm/next 2024-07-14 00:27:06 +00:00
hypercalls.c KVM: arm64: Use kvm_has_feat() to check if FEAT_SSBS is advertised to the guest 2024-08-25 17:48:44 +01:00
inject_fault.c KVM: arm64: Fix typos 2024-02-24 09:13:33 +00:00
Kconfig Revert "KVM: arm64: Snapshot all non-zero RES0/RES1 sysreg fields for later checking" 2024-03-15 17:50:22 -07:00
Makefile Kbuild updates for v6.10 2024-05-18 12:39:20 -07:00
mmio.c KVM: arm64: Force injection of a data abort on NISV MMIO exit 2024-05-01 16:48:15 +01:00
mmu.c KVM: arm64: nv: Tag shadow S2 entries with guest's leaf S2 level 2024-06-19 08:14:38 +00:00
nested.c Merge branch kvm-arm64/nv-sve into kvmarm/next 2024-07-14 00:27:06 +00:00
pauth.c KVM: arm64: nv: Work around lack of pauth support in old toolchains 2024-04-23 19:27:11 +01:00
pkvm.c KVM: arm64: Prevent kmemleak from accessing .hyp.data 2024-05-01 16:48:14 +01:00
pmu-emul.c ARM: 2024-07-20 12:41:03 -07:00
pmu.c KVM: arm64: Add accessor for per-CPU state 2024-04-12 13:57:30 +01:00
psci.c Merge branch kvm-arm64/smccc-filtering into kvmarm-master/next 2023-04-21 09:44:32 +01:00
pvtime.c KVM: MMU: Make the definition of 'INVALID_GPA' common 2023-01-19 21:48:38 +00:00
reset.c KVM: arm64: nv: Support multiple nested Stage-2 mmu structures 2024-06-19 08:13:49 +00:00
stacktrace.c arm64: stacktrace: track hyp stacks in unwinder's address space 2022-09-09 12:30:08 +01:00
sys_regs.c KVM: arm64: Allow userspace to change ID_AA64PFR1_EL1 2024-08-25 17:48:44 +01:00
sys_regs.h KVM: arm64: Rename __check_nv_sr_forward() to triage_sysreg_trap() 2024-02-19 17:13:01 +00:00
trace.h
trace_arm.h KVM: arm64: Add tracepoint for MMIO accesses where ISV==0 2023-10-30 20:17:22 +00:00
trace_handle_exit.h
trng.c
va_layout.c arm64: alternatives: kvm: prepare for cap changes 2022-09-16 17:15:02 +01:00
vgic-sys-reg-v3.c
vmid.c KVM: arm64: Reload stage-2 for VMID change on VHE 2023-10-20 17:52:01 +00:00