Several LoongArch KVM features are fully implemented but were never reported through their standard KVM_CHECK_EXTENSION probes, so userspace cannot discover them. Advertise the ones that already work and have a real consumer: - KVM_CAP_STEAL_TIME: steal time works end-to-end (host-side record plus guest paravirt side), and the probe returns kvm_pvtime_supported(). - KVM_CAP_VCPU_ATTRIBUTES: per-vCPU device-attribute ioctls are implemented (CPUCFG, PVTIME control); advertise the discovery cap. This adds no new functionality; it only makes existing features discoverable via the standard probe. Signed-off-by: Tao Cui --- Changes in v2: - Drop KVM_CAP_IRQFD_RESAMPLE: the only consumer is VFIO INTx, which needs IOMMU/VFIO not yet available on LoongArch. - Drop KVM_CAP_VM_GPA_BITS: the cap implies a GPA-width setter that LoongArch does not implement. arch/loongarch/kvm/vm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/loongarch/kvm/vm.c b/arch/loongarch/kvm/vm.c index 1317c718f896..0a51931d6f6e 100644 --- a/arch/loongarch/kvm/vm.c +++ b/arch/loongarch/kvm/vm.c @@ -122,6 +122,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_IOEVENTFD: case KVM_CAP_MP_STATE: case KVM_CAP_SET_GUEST_DEBUG: + case KVM_CAP_VCPU_ATTRIBUTES: r = 1; break; case KVM_CAP_NR_VCPUS: @@ -136,6 +137,9 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext) case KVM_CAP_NR_MEMSLOTS: r = KVM_USER_MEM_SLOTS; break; + case KVM_CAP_STEAL_TIME: + r = kvm_pvtime_supported(); + break; default: r = 0; break;