diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2016-07-24 09:27:00 +1000 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2016-08-18 16:04:26 +1000 |
commit | 2490669a29014e27eee3bf3c72b17383dea4a55d (patch) | |
tree | 1ffc8f2c4680e2071f7f8befd5faf6ed14eab81f | |
parent | b54745c0a81af6e2ecd86f50f2b66aa9d0f4409e (diff) | |
download | skiboot-2490669a29014e27eee3bf3c72b17383dea4a55d.zip skiboot-2490669a29014e27eee3bf3c72b17383dea4a55d.tar.gz skiboot-2490669a29014e27eee3bf3c72b17383dea4a55d.tar.bz2 |
Disable mcount on some early functions
It doesn't work well to call it before the boot CPU structure
is initialized.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
-rw-r--r-- | core/cpu.c | 2 | ||||
-rw-r--r-- | core/init.c | 14 |
2 files changed, 8 insertions, 8 deletions
@@ -438,7 +438,7 @@ void init_hid(void) disable_attn(); } -void pre_init_boot_cpu(void) +void __nomcount pre_init_boot_cpu(void) { struct cpu_thread *cpu = this_cpu(); diff --git a/core/init.c b/core/init.c index 86bcdea..b50a360 100644 --- a/core/init.c +++ b/core/init.c @@ -563,12 +563,9 @@ static void setup_branch_null_catcher(void) memcpy(0, bn, 16); } -/* Called from head.S, thus no prototype. */ -void __noreturn main_cpu_entry(const void *fdt, u32 master_cpu); - typedef void (*ctorcall_t)(void); -static void do_ctors(void) +static void __nomcount do_ctors(void) { extern ctorcall_t __ctors_start[], __ctors_end[]; ctorcall_t *call; @@ -577,7 +574,10 @@ static void do_ctors(void) (*call)(); } -void __noreturn main_cpu_entry(const void *fdt, u32 master_cpu) +/* Called from head.S, thus no prototype. */ +void main_cpu_entry(const void *fdt, u32 master_cpu); + +void __noreturn __nomcount main_cpu_entry(const void *fdt, u32 master_cpu) { /* * WARNING: At this point. the timebases have @@ -854,9 +854,9 @@ void __noreturn __secondary_cpu_entry(void) } /* Called from head.S, thus no prototype. */ -void __noreturn secondary_cpu_entry(void); +void secondary_cpu_entry(void); -void __noreturn secondary_cpu_entry(void) +void __noreturn __nomcount secondary_cpu_entry(void) { struct cpu_thread *cpu = this_cpu(); |