ARM/ARM64: KVM: Make kvm_psci_call() return convention more flexible
authorAnup Patel <anup.patel@linaro.org>
Tue, 29 Apr 2014 05:54:18 +0000 (11:24 +0530)
committerChristoffer Dall <christoffer.dall@linaro.org>
Thu, 2 Oct 2014 15:18:43 +0000 (17:18 +0200)
commitc6debeb5f9cf9a1c1f8867d991563302797e20c3
treee446fb62536ea93d8b3b4ff2281d456fda8e9e0c
parent4ccf6abe18fc14863159b2c51a4958214b4c13dc
ARM/ARM64: KVM: Make kvm_psci_call() return convention more flexible

Currently, the kvm_psci_call() returns 'true' or 'false' based on whether
the PSCI function call was handled successfully or not. This does not help
us emulate system-level PSCI functions where the actual emulation work will
be done by user space (QEMU or KVMTOOL). Examples of such system-level PSCI
functions are: PSCI v0.2 SYSTEM_OFF and SYSTEM_RESET.

This patch updates kvm_psci_call() to return three types of values:
1) > 0 (success)
2) = 0 (success but exit to user space)
3) < 0 (errors)

Signed-off-by: Anup Patel <anup.patel@linaro.org>
Signed-off-by: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
(cherry picked from commit e8e7fcc5e2710b31ef842ee799db99c07986c364)
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
arch/arm/include/asm/kvm_psci.h
arch/arm/kvm/handle_exit.c
arch/arm/kvm/psci.c
arch/arm64/include/asm/kvm_psci.h
arch/arm64/kvm/handle_exit.c