* [PATCH]: MIPS: IP27: Fix section mismatches & mark boot functions w/ __init
@ 2015-09-07 10:46 Joshua Kinard
0 siblings, 0 replies; only message in thread
From: Joshua Kinard @ 2015-09-07 10:46 UTC (permalink / raw)
To: Ralf Baechle; +Cc: Linux/MIPS
From: Joshua Kinard <kumba@gentoo.org>
When the xwidget.h changes were added in 4.1, they inadvertently created
a few section mismatch warnings due to not using '__init' on a few
functions:
WARNING: vmlinux.o(.text+0x38f8): Section mismatch in reference from the function xbow_probe() to the variable .init.rodata:widget_idents
The function xbow_probe() references
the variable __initconst widget_idents.
This is often because xbow_probe lacks a __initconst
annotation or the annotation of widget_idents is wrong.
WARNING: vmlinux.o(.text+0x3bd8): Section mismatch in reference from the function xtalk_probe_node() to the variable .init.rodata:widget_idents
The function xtalk_probe_node() references
the variable __initconst widget_idents.
This is often because xtalk_probe_node lacks a __initconst
annotation or the annotation of widget_idents is wrong.
Fix this, and add __init to nearby IP27 functions that are only used
during system boot up, as this platform can't hotswap CPUs/nodes while
running anyways.
Signed-off-by: Joshua Kinard <kumba@gentoo.org>
---
arch/mips/sgi-ip27/ip27-init.c | 2 +-
arch/mips/sgi-ip27/ip27-smp.c | 10 +++++-----
arch/mips/sgi-ip27/ip27-xtalk.c | 6 +++---
3 files changed, 9 insertions(+), 9 deletions(-)
linux-mips-ip27-fix-section-mismatches.patch
diff --git a/arch/mips/sgi-ip27/ip27-init.c b/arch/mips/sgi-ip27/ip27-init.c
index 570098b..bb00afd 100644
--- a/arch/mips/sgi-ip27/ip27-init.c
+++ b/arch/mips/sgi-ip27/ip27-init.c
@@ -110,7 +110,7 @@ static void per_hub_init(cnodeid_t cnode)
}
}
-void per_cpu_init(void)
+void __init per_cpu_init(void)
{
int cpu = smp_processor_id();
int slice = LOCAL_HUB_L(PI_CPU_NUM);
diff --git a/arch/mips/sgi-ip27/ip27-smp.c b/arch/mips/sgi-ip27/ip27-smp.c
index f9ae6a8..cd6fc2e 100644
--- a/arch/mips/sgi-ip27/ip27-smp.c
+++ b/arch/mips/sgi-ip27/ip27-smp.c
@@ -94,7 +94,7 @@ static int do_cpumask(cnodeid_t cnode, nasid_t nasid, int highest)
return highest;
}
-void cpu_node_probe(void)
+void __init cpu_node_probe(void)
{
int i, highest = 0;
gda_t *gdap = GDA;
@@ -127,7 +127,7 @@ void cpu_node_probe(void)
printk("Discovered %d cpus on %d nodes\n", highest + 1, num_online_nodes());
}
-static __init void intr_clear_all(nasid_t nasid)
+static void __init intr_clear_all(nasid_t nasid)
{
int i;
@@ -173,12 +173,12 @@ static void ip27_send_ipi_mask(const struct cpumask *mask, unsigned int action)
ip27_send_ipi_single(i, action);
}
-static void ip27_init_secondary(void)
+static void __init ip27_init_secondary(void)
{
per_cpu_init();
}
-static void ip27_smp_finish(void)
+static void __init ip27_smp_finish(void)
{
extern void hub_rt_clock_event_init(void);
@@ -191,7 +191,7 @@ static void ip27_smp_finish(void)
* set sp to the kernel stack of the newly created idle process, gp to the proc
* struct so that current_thread_info() will work.
*/
-static void ip27_boot_secondary(int cpu, struct task_struct *idle)
+static void __init ip27_boot_secondary(int cpu, struct task_struct *idle)
{
unsigned long gp = (unsigned long)task_thread_info(idle);
unsigned long sp = __KSTK_TOS(idle);
diff --git a/arch/mips/sgi-ip27/ip27-xtalk.c b/arch/mips/sgi-ip27/ip27-xtalk.c
index c262208..07bb8fd 100644
--- a/arch/mips/sgi-ip27/ip27-xtalk.c
+++ b/arch/mips/sgi-ip27/ip27-xtalk.c
@@ -22,7 +22,7 @@
extern int bridge_probe(nasid_t nasid, int widget, int masterwid);
-static int probe_one_port(nasid_t nasid, int widget, int masterwid)
+static int __init probe_one_port(nasid_t nasid, int widget, int masterwid)
{
const struct widget_ident *res;
u32 wid_id, wid_part, wid_mfgr, wid_rev;
@@ -63,7 +63,7 @@ static int probe_one_port(nasid_t nasid, int widget, int masterwid)
return 0;
}
-static int xbow_probe(nasid_t nasid)
+static int __init xbow_probe(nasid_t nasid)
{
lboard_t *brd;
klxbow_t *xbow_p;
@@ -116,7 +116,7 @@ static int xbow_probe(nasid_t nasid)
return 0;
}
-void xtalk_probe_node(cnodeid_t nid)
+void __init xtalk_probe_node(cnodeid_t nid)
{
volatile u64 hubreg;
nasid_t nasid;
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-09-07 10:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-07 10:46 [PATCH]: MIPS: IP27: Fix section mismatches & mark boot functions w/ __init Joshua Kinard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.