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 53b7159dc3058c277b4119163549f6d51e35e52b..3caf64b96f7ef401f78fc5eab6ac6d445aef0562 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;
        }