[IA64] fix section mismatch warnings
authorTony Luck <tony.luck@intel.com>
Fri, 20 Jul 2007 21:39:24 +0000 (14:39 -0700)
committerTony Luck <tony.luck@intel.com>
Wed, 25 Jul 2007 20:08:26 +0000 (13:08 -0700)
In 741f98fe298a73c9d47ed53703c1279a29718581 Sam added full
checking across the entire vmlinux image.  This flushed out
a dozen new section mismatch warnings.  Start the whack-a-mole
game again to stomp them out.

Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/head.S
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/vmlinux.lds.S
include/asm-ia64/smp.h

index 44d540e..4e5e275 100644 (file)
@@ -178,7 +178,7 @@ swapper_pg_dir:
 halt_msg:
        stringz "Halting kernel\n"
 
-       .text
+       .section .text.head,"ax"
 
        .global start_ap
 
@@ -392,6 +392,8 @@ self:       hint @pause
        br.sptk.many self               // endless loop
 END(_start)
 
+       .text
+
 GLOBAL_ENTRY(ia64_save_debug_regs)
        alloc r16=ar.pfs,1,0,0,0
        mov r20=ar.lc                   // preserve ar.lc
index 9f5c90b..62209dc 100644 (file)
@@ -487,7 +487,7 @@ struct create_idle {
        int cpu;
 };
 
-void
+void __cpuinit
 do_fork_idle(struct work_struct *work)
 {
        struct create_idle *c_idle =
@@ -497,7 +497,7 @@ do_fork_idle(struct work_struct *work)
        complete(&c_idle->done);
 }
 
-static int __devinit
+static int __cpuinit
 do_boot_cpu (int sapicid, int cpu)
 {
        int timeout;
@@ -808,7 +808,7 @@ set_cpu_sibling_map(int cpu)
        }
 }
 
-int __devinit
+int __cpuinit
 __cpu_up (unsigned int cpu)
 {
        int ret;
index 860f251..83e8067 100644 (file)
@@ -50,6 +50,8 @@ SECTIONS
        KPROBES_TEXT
        *(.gnu.linkonce.t*)
     }
+  .text.head : AT(ADDR(.text.head) - LOAD_OFFSET)
+       { *(.text.head) }
   .text2 : AT(ADDR(.text2) - LOAD_OFFSET)
        { *(.text2) }
 #ifdef CONFIG_SMP
index c600249..6314b29 100644 (file)
@@ -116,7 +116,6 @@ max_xtp (void)
 extern int __cpu_disable (void);
 extern void __cpu_die (unsigned int cpu);
 extern void cpu_die (void) __attribute__ ((noreturn));
-extern int __cpu_up (unsigned int cpu);
 extern void __init smp_build_cpu_map(void);
 
 extern void __init init_smp_config (void);