Thread (30 messages) 30 messages, 5 authors, 2016-02-21
STALE3796d

[PATCH v5 11/15] arm64: head.S: Change the register el2_setup() returns its result in x0

From: Pavel Machek <hidden>
Date: 2016-02-18 11:45:30
Also in: linux-pm

On Thu 2016-02-18 11:41:27, Lorenzo Pieralisi wrote:
Hi James,

On Tue, Feb 16, 2016 at 03:49:23PM +0000, James Morse wrote:
quoted
Today el2_setup() returns its result in w20. This means we can't call it
like any normal function. Change this to w0.

All three callers of el2_setup() call set_cpu_boot_mode_flag() immediately
afterwards, and don't rely on x0 in later code. Boot cpu code calls
preserve_boot_args() before el2_setup(), so we don't clobber the DT pointer.

Signed-off-by: James Morse <james.morse@arm.com>
---
 arch/arm64/include/asm/processor.h |  2 ++
 arch/arm64/kernel/head.S           | 18 +++++++++---------
 2 files changed, 11 insertions(+), 9 deletions(-)
diff --git a/arch/arm64/include/asm/processor.h b/arch/arm64/include/asm/processor.h
index 4acb7ca94fcd..07ac4351538e 100644
--- a/arch/arm64/include/asm/processor.h
+++ b/arch/arm64/include/asm/processor.h
@@ -188,4 +188,6 @@ static inline void spin_lock_prefetch(const void *x)
 
 void cpu_enable_pan(void *__unused);
 
+int el2_setup(void);
Do we really need to have this declaration (and this patch) ? We never
treat (and call) el2_setup as a C function anyway, as long as the registers
used to pass in values (and return value) are documented I do not think we
have an issue anyway, am I missing something here ?
Well, using non-standard calling convention for something that can use
standard one is very ugly at least.

Best regards,
								Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help