aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-07-24 09:27:00 +1000
committerStewart Smith <stewart@linux.vnet.ibm.com>2016-08-18 16:04:26 +1000
commit2490669a29014e27eee3bf3c72b17383dea4a55d (patch)
tree1ffc8f2c4680e2071f7f8befd5faf6ed14eab81f
parentb54745c0a81af6e2ecd86f50f2b66aa9d0f4409e (diff)
downloadskiboot-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.c2
-rw-r--r--core/init.c14
2 files changed, 8 insertions, 8 deletions
diff --git a/core/cpu.c b/core/cpu.c
index f407b46..316a0a3 100644
--- a/core/cpu.c
+++ b/core/cpu.c
@@ -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();