KVM: PPC: Book3S HV: XIVE: Fix the enforced limit on the vCPU identifier
authorCédric Le Goater <clg@kaod.org>
Mon, 20 May 2019 07:15:14 +0000 (09:15 +0200)
committerPaul Mackerras <paulus@ozlabs.org>
Wed, 29 May 2019 03:44:37 +0000 (13:44 +1000)
When a vCPU is connected to the KVM device, it is done using its vCPU
identifier in the guest. Fix the enforced limit on the vCPU identifier
by taking into account the SMT mode.

Reported-by: Satheesh Rajendran <sathnaga@linux.vnet.ibm.com>
Tested-by: Satheesh Rajendran <sathnaga@linux.vnet.ibm.com>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
arch/powerpc/kvm/book3s_xive_native.c

index 53b7159..3caf64b 100644 (file)
@@ -109,7 +109,7 @@ int kvmppc_xive_native_connect_vcpu(struct kvm_device *dev,
                return -EPERM;
        if (vcpu->arch.irq_type != KVMPPC_IRQ_DEFAULT)
                return -EBUSY;
-       if (server_num >= KVM_MAX_VCPUS) {
+       if (server_num >= (KVM_MAX_VCPUS * vcpu->kvm->arch.emul_smt_mode)) {
                pr_devel("Out of bounds !\n");
                return -EINVAL;
        }