arm64: adjust el0_sync so that a function can be called
authorLarry Bassel <larry.bassel@linaro.org>
Fri, 30 May 2014 19:34:14 +0000 (20:34 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 10 Jul 2014 09:10:20 +0000 (10:10 +0100)
commit6ab6463aeb5fbc75fa3227befb508fc33b34dbf1
tree02a4aee7b9b8787c6f160fb4b622328bcf149b65
parentc0c264ae5112d1cdb7d37d4e208b7a7e766a7418
arm64: adjust el0_sync so that a function can be called

To implement the context tracker properly on arm64,
a function call needs to be made after debugging and
interrupts are turned on, but before the lr is changed
to point to ret_to_user(). If the function call
is made after the lr is changed the function will not
return to the correct place.

For similar reasons, defer the setting of x0 so that
it doesn't need to be saved around the function call
(save far_el1 in x26 temporarily instead).

Acked-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Kevin Hilman <khilman@linaro.org>
Tested-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Larry Bassel <larry.bassel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/kernel/entry.S