[PATCH] x86_64: Only use asm/sections.h to declare section symbols
authorAndi Kleen <ak@suse.de>
Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 15 Nov 2005 03:55:14 +0000 (19:55 -0800)
Adding __initdata_* to asm-generic/sections.h
Replaces a lot of open coded externs in arch/x86_64/*
I had to change __bss_end to __bss_stop to match the other architectures.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/x86_64/kernel/e820.c
arch/x86_64/kernel/head64.c
arch/x86_64/kernel/setup.c
arch/x86_64/kernel/vmlinux.lds.S
arch/x86_64/mm/init.c
include/asm-generic/sections.h

index ab3f87aaff70ab81e4c14f9beacc6341d52579b8..17579a1a174bda40da7f3291793ac746b9515cb0 100644 (file)
@@ -23,8 +23,7 @@
 #include <asm/e820.h>
 #include <asm/proto.h>
 #include <asm/bootsetup.h>
-
-extern char _end[];
+#include <asm/sections.h>
 
 /* 
  * PFN of last memory page.
index e0f12d49db4cd895a20646ee2e7126bf0622c4f2..b675c5add01ece1b5b9071940e25d0b714e4f536 100644 (file)
 #include <asm/setup.h>
 #include <asm/desc.h>
 #include <asm/pgtable.h>
+#include <asm/sections.h>
 
 /* Don't add a printk in there. printk relies on the PDA which is not initialized 
    yet. */
 static void __init clear_bss(void)
 {
-       extern char __bss_start[], __bss_end[];
        memset(__bss_start, 0,
-              (unsigned long) __bss_end - (unsigned long) __bss_start);
+              (unsigned long) __bss_stop - (unsigned long) __bss_start);
 }
 
 #define NEW_CL_POINTER         0x228   /* Relative to real mode data */
@@ -76,8 +76,6 @@ static void __init setup_boot_cpu_data(void)
        boot_cpu_data.x86_mask = eax & 0xf;
 }
 
-extern char _end[];
-
 void __init x86_64_start_kernel(char * real_mode_data)
 {
        char *s;
index f76f3743f5d74df6336ef7a2cb4aa1acd95f95ab..2ad3556dda52a3b313a296eab5843942d2a720ad 100644 (file)
@@ -60,6 +60,7 @@
 #include <asm/setup.h>
 #include <asm/mach_apic.h>
 #include <asm/numa.h>
+#include <asm/sections.h>
 
 /*
  * Machine setup..
@@ -103,7 +104,6 @@ struct edid_info edid_info;
 struct e820map e820;
 
 extern int root_mountflags;
-extern char _text, _etext, _edata, _end;
 
 char command_line[COMMAND_LINE_SIZE];
 
index 6dd642cad2efd0074d2150edebe7d78080836850..58b19215b4b3a3c19adc2a68a3b792b325b555f3 100644 (file)
@@ -50,7 +50,7 @@ SECTIONS
        *(.bss.page_aligned)    
        *(.bss)
        }
-  __bss_end = .;
+  __bss_stop = .;
 
   . = ALIGN(PAGE_SIZE);
   . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
index be483a1d7b5420ed865fea3fc5e990cf10d0cd60..489e18df1fe990159f3ef2c7b34af4967dbe1004 100644 (file)
@@ -36,6 +36,7 @@
 #include <asm/mmu_context.h>
 #include <asm/proto.h>
 #include <asm/smp.h>
+#include <asm/sections.h>
 
 #ifndef Dprintk
 #define Dprintk(x...)
@@ -45,8 +46,6 @@
 extern int swiotlb;
 #endif
 
-extern char _stext[];
-
 static unsigned long dma_reserve __initdata;
 
 DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
@@ -88,9 +87,6 @@ void show_mem(void)
 
 /* References to section boundaries */
 
-extern char _text, _etext, _edata, __bss_start, _end[];
-extern char __init_begin, __init_end;
-
 int after_bootmem;
 
 static void *spp_getpage(void)
@@ -491,8 +487,6 @@ void __init mem_init(void)
 #endif
 }
 
-extern char __initdata_begin[], __initdata_end[];
-
 void free_initmem(void)
 {
        unsigned long addr;
@@ -506,7 +500,7 @@ void free_initmem(void)
                totalram_pages++;
        }
        memset(__initdata_begin, 0xba, __initdata_end - __initdata_begin);
-       printk ("Freeing unused kernel memory: %luk freed\n", (&__init_end - &__init_begin) >> 10);
+       printk ("Freeing unused kernel memory: %luk freed\n", (__init_end - __init_begin) >> 10);
 }
 
 #ifdef CONFIG_BLK_DEV_INITRD
index 886dbd11689991396238d2cc6bdf9f09374762ff..0b49f9e070f14ac2ac780e0b7e4170d7677ed399 100644 (file)
@@ -13,5 +13,6 @@ extern char _eextratext[] __attribute__((weak));
 extern char _end[];
 extern char __per_cpu_start[], __per_cpu_end[];
 extern char __kprobes_text_start[], __kprobes_text_end[];
+extern char __initdata_begin[], __initdata_end[];
 
 #endif /* _ASM_GENERIC_SECTIONS_H_ */