arm64: don't call C code with el0's fp register
authorJames Morse <james.morse@arm.com>
Thu, 10 Dec 2015 10:22:41 +0000 (10:22 +0000)
committerAlex Shi <alex.shi@linaro.org>
Wed, 11 May 2016 07:57:02 +0000 (15:57 +0800)
commit70dfc6968ad22e057520da92b7b4da86041d3ea7
treef92816988d4e6aa63111bb908c9af6a085b66c73
parente330d15430acce6073bb2c8486fba7555be1e923
arm64: don't call C code with el0's fp register

On entry from el0, we save all the registers on the kernel stack, and
restore them before returning. x29 remains unchanged when we call out
to C code, which will store x29 as the frame-pointer on the stack.

Instead, write 0 into x29 after entry from el0, to avoid any risk of
tracing into user space.

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
(cherry picked from commit 49003a8d6b35e128ef5e51433e60e783a46fbe5f)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
arch/arm64/kernel/entry.S