don't pass r12 as reference
authorStefano Stabellini <sstabellini@kernel.org>
Thu, 18 Jan 2018 21:48:49 +0000 (13:48 -0800)
committerStefano Stabellini <sstabellini@kernel.org>
Fri, 19 Jan 2018 00:19:08 +0000 (16:19 -0800)
commit56498d2cf9d3c5f7d3d894a89f7d66ed81548e01
tree5f54dae556f7e64c51950c2965967566ea7f3595
parent380c152033d2a58fe7dc43bf26c3c8b56bfa5d43
don't pass r12 as reference

r12 and x16 are of different sizes; when passing r12 as a reference to
do_trap_hypercall on arm64, we end up dereferencing it as a pointer to a
64bit value, but actually it isn't.

Instead, use a temporary variable to pass r12, and write back the result
after the call to do_trap_hypercall.

CID: 1457708
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
Reviewed-by: Julien Grall <julien.grall@linaro.org>
xen/arch/arm/traps.c