]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: KVM: Don't handle PSCI calls via SMC
authorDave P Martin <Dave.Martin@arm.com>
Wed, 1 May 2013 16:49:28 +0000 (17:49 +0100)
committerChristoffer Dall <cdall@cs.columbia.edu>
Tue, 28 May 2013 02:36:01 +0000 (19:36 -0700)
Currently, kvmtool unconditionally declares that HVC should be used
to call PSCI, so the function numbers in the DT tell the guest
nothing about the function ID namespace or calling convention for
SMC.

We already assume that the guest will examine and honour the DT,
since there is no way it could possibly guess the KVM-specific PSCI
function IDs otherwise.  So let's not encourage guests to violate
what's specified in the DT by using SMC to make the call.

[ Modified to apply to top of kvm/arm tree - Christoffer ]

Signed-off-by: Dave P Martin <Dave.Martin@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@cs.columbia.edu>
arch/arm/kvm/handle_exit.c
arch/arm/kvm/psci.c

index 3d74a0be47dbfd81bf3950ba4bad75ed1b1b0f76..df4c82d47ad7101cf2f87028d39471cd6d63d7df 100644 (file)
@@ -52,9 +52,6 @@ static int handle_hvc(struct kvm_vcpu *vcpu, struct kvm_run *run)
 
 static int handle_smc(struct kvm_vcpu *vcpu, struct kvm_run *run)
 {
-       if (kvm_psci_call(vcpu))
-               return 1;
-
        kvm_inject_undefined(vcpu);
        return 1;
 }
index 7ee5bb7a3667d8227a2d87b3e62239a4854cd933..86a693a02ba3a78e4288b94c63f3b1fba77a6b38 100644 (file)
@@ -75,7 +75,7 @@ static unsigned long kvm_psci_vcpu_on(struct kvm_vcpu *source_vcpu)
  * kvm_psci_call - handle PSCI call if r0 value is in range
  * @vcpu: Pointer to the VCPU struct
  *
- * Handle PSCI calls from guests through traps from HVC or SMC instructions.
+ * Handle PSCI calls from guests through traps from HVC instructions.
  * The calling convention is similar to SMC calls to the secure world where
  * the function number is placed in r0 and this function returns true if the
  * function number specified in r0 is withing the PSCI range, and false