[PATCH 0/8] KVM: arm64: Cleanup + fix to vCPU reset, feature flags

Oliver Upton
2023-09-20T19:50:51Z

The way we do vCPU feature flag checks is a bit of a scattered mess
between the KVM_ARM_VCPU_INIT ioctl handler and kvm_reset_vcpu(). Let's
move all the feature flag checks up into the ioctl() handler to
eliminate failure paths from kvm_reset_vcpu(), as other usage of this
function no not handle returned errors.

Nobody screamed about the VM-wide feature flag change, so its also a
good time to rip out the vestiges of the vCPU-scoped bitmap.

I also spotted a bug with the NV feature flag where we allow it
regardless of system support.

Oliver Upton (8):
KVM: arm64: Add generic check for system-supported vCPU features
KVM: arm64: Hoist PMUv3 check into KVM_ARM_VCPU_INIT ioctl handler
KVM: arm64: Hoist SVE check into KVM_ARM_VCPU_INIT ioctl handler
KVM: arm64: Hoist PAuth checks into KVM_ARM_VCPU_INIT ioctl
KVM: arm64: Prevent NV feature flag on systems w/o nested virt
KVM: arm64: Hoist NV+SVE check into KVM_ARM_VCPU_INIT ioctl handler
KVM: arm64: Remove unused return value from kvm_reset_vcpu()
KVM: arm64: Get rid of vCPU-scoped feature bitmap

arch/arm64/include/asm/kvm_emulate.h | 13 +++---
arch/arm64/include/asm/kvm_host.h | 5 +--
arch/arm64/include/asm/kvm_nested.h | 3 +-
arch/arm64/kvm/arch_timer.c | 4 +-
arch/arm64/kvm/arm.c | 62 +++++++++++++++++++++-------
arch/arm64/kvm/hypercalls.c | 2 +-
arch/arm64/kvm/reset.c | 56 +++++--------------------
include/kvm/arm_arch_timer.h | 2 +-
include/kvm/arm_pmu.h | 2 +-
include/kvm/arm_psci.h | 2 +-
10 files changed, 72 insertions(+), 79 deletions(-)

base-commit: ce9ecca0238b140b88f43859b211c9fdfd8e5b70
--
2.42.0.515.g380fc7ccd1-goog