linux/arch/arm/kvm
Lorenzo Pieralisi 3f3587c4ff ARM: kvm: psci: fix handling of unimplemented functions
commit e2d997366d upstream.

According to the PSCI specification and the SMC/HVC calling
convention, PSCI function_ids that are not implemented must
return NOT_SUPPORTED as return value.

Current KVM implementation takes an unhandled PSCI function_id
as an error and injects an undefined instruction into the guest
if PSCI implementation is called with a function_id that is not
handled by the resident PSCI version (ie it is not implemented),
which is not the behaviour expected by a guest when calling a
PSCI function_id that is not implemented.

This patch fixes this issue by returning NOT_SUPPORTED whenever
the kvm PSCI call is executed for a function_id that is not
implemented by the PSCI kvm layer.

Cc: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2015-07-10 09:49:34 -07:00
..
arm.c KVM: arm/arm64: check IRQ number on userland injection 2015-04-22 15:42:24 +01:00
coproc.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc.h arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc_a7.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc_a15.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
emulate.c KVM: ARM: Fix typo in comments of inject_abt() 2013-10-02 17:29:19 +01:00
guest.c arm/arm64: KVM: Kill CONFIG_KVM_ARM_{VGIC,TIMER} 2015-03-12 15:15:27 +01:00
handle_exit.c ARM: KVM: extend WFI tracepoint to differentiate between wfi and wfe 2015-01-15 13:12:27 +01:00
init.S ARM: kvm: round HYP section to page size instead of log2 upper bound 2015-03-27 12:21:27 +00:00
interrupts.S arm: KVM: force execution of HCPTR access on VM exit 2015-07-10 09:49:34 -07:00
interrupts_head.S arm: KVM: force execution of HCPTR access on VM exit 2015-07-10 09:49:34 -07:00
Kconfig KVM: arm/arm64: add irqfd support 2015-03-12 15:15:34 +01:00
Makefile KVM: arm/arm64: remove now unneeded include directory from Makefile 2015-03-26 21:43:13 +00:00
mmio.c KVM: arm/arm64: rework MMIO abort handling to use KVM MMIO bus 2015-03-30 17:07:19 +01:00
mmu.c arm64 updates for 4.1: 2015-04-16 13:58:29 -05:00
perf.c ARM: KVM: add support for minimal host vs guest profiling 2013-04-28 21:44:01 -07:00
psci.c ARM: kvm: psci: fix handling of unimplemented functions 2015-07-10 09:49:34 -07:00
reset.c Updates for KVM/ARM, take 3 supporting more than 4 CPUs. 2013-11-11 12:02:27 +01:00
trace.h arm/arm64: KVM: Optimize handling of Access Flag faults 2015-03-12 22:34:49 +01:00