multicall: deal with early exit conditions
authorJan Beulich <jbeulich@suse.com>
Tue, 2 May 2017 11:18:35 +0000 (12:18 +0100)
committerIan Jackson <ian.jackson@eu.citrix.com>
Thu, 7 Sep 2017 18:17:58 +0000 (19:17 +0100)
commitf9105888aa71c43e97ea66e723c78098e5a73e2c
treede3cd57d03189f8e199dee42fc6e837bb2f47899
parent8cddbac9aa78150e8a017881401e30f367a7236e
multicall: deal with early exit conditions

In particular changes to guest privilege level require the multicall
sequence to be aborted, as hypercalls are permitted from kernel mode
only. While likely not very useful in a multicall, also properly handle
the return value in the HYPERVISOR_iret case (which should be the guest
specified value).

This is XSA-213.

Reported-by: Jann Horn <jannh@google.com>
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Gbp-Pq: Name multicall-deal-with-early-exit-condition
xen/arch/arm/traps.c
xen/arch/x86/hypercall.c
xen/common/multicall.c
xen/include/xen/multicall.h