aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiang Liu <liuj97@gmail.com>2013-07-03 18:03:39 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-07-03 19:07:34 -0400
commit40a3b8df7be3b813cef7e32f74dea398274c2d47 (patch)
treecf8cf4810285267f3b43ffa32c166b49b355da0b
parentae49b83dcacfb69e22092cab688c415c2f2d870c (diff)
tile: normalize global variables exported by vmlinux.lds
Normalize global variables exported by vmlinux.lds to conform usage guidelines from include/asm-generic/sections.h. 1) Use _text to mark the start of the kernel image including the head text, and _stext to mark the start of the .text section. 2) Export mandatory global variables __init_begin and __init_end. Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Acked-by: Chris Metcalf <cmetcalf@tilera.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Wen Congyang <wency@cn.fujitsu.com> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/tile/include/asm/sections.h2
-rw-r--r--arch/tile/kernel/setup.c4
-rw-r--r--arch/tile/kernel/vmlinux.lds.S4
-rw-r--r--arch/tile/mm/init.c2
4 files changed, 7 insertions, 5 deletions
diff --git a/arch/tile/include/asm/sections.h b/arch/tile/include/asm/sections.h
index d062d463fca9..7d8a935a9238 100644
--- a/arch/tile/include/asm/sections.h
+++ b/arch/tile/include/asm/sections.h
@@ -34,7 +34,7 @@ extern char __sys_cmpxchg_grab_lock[];
34extern char __start_atomic_asm_code[], __end_atomic_asm_code[]; 34extern char __start_atomic_asm_code[], __end_atomic_asm_code[];
35#endif 35#endif
36 36
37/* Handle the discontiguity between _sdata and _stext. */ 37/* Handle the discontiguity between _sdata and _text. */
38static inline int arch_is_kernel_data(unsigned long addr) 38static inline int arch_is_kernel_data(unsigned long addr)
39{ 39{
40 return addr >= (unsigned long)_sdata && 40 return addr >= (unsigned long)_sdata &&
diff --git a/arch/tile/kernel/setup.c b/arch/tile/kernel/setup.c
index 7a5aa1a7864e..41818e3ce97e 100644
--- a/arch/tile/kernel/setup.c
+++ b/arch/tile/kernel/setup.c
@@ -307,8 +307,8 @@ static void __cpuinit store_permanent_mappings(void)
307 hv_store_mapping(addr, pages << PAGE_SHIFT, pa); 307 hv_store_mapping(addr, pages << PAGE_SHIFT, pa);
308 } 308 }
309 309
310 hv_store_mapping((HV_VirtAddr)_stext, 310 hv_store_mapping((HV_VirtAddr)_text,
311 (uint32_t)(_einittext - _stext), 0); 311 (uint32_t)(_einittext - _text), 0);
312} 312}
313 313
314/* 314/*
diff --git a/arch/tile/kernel/vmlinux.lds.S b/arch/tile/kernel/vmlinux.lds.S
index 631f10de12fe..a13ed902afbb 100644
--- a/arch/tile/kernel/vmlinux.lds.S
+++ b/arch/tile/kernel/vmlinux.lds.S
@@ -27,7 +27,6 @@ SECTIONS
27 .intrpt1 (LOAD_OFFSET) : AT ( 0 ) /* put at the start of physical memory */ 27 .intrpt1 (LOAD_OFFSET) : AT ( 0 ) /* put at the start of physical memory */
28 { 28 {
29 _text = .; 29 _text = .;
30 _stext = .;
31 *(.intrpt1) 30 *(.intrpt1)
32 } :intrpt1 =0 31 } :intrpt1 =0
33 32
@@ -36,6 +35,7 @@ SECTIONS
36 35
37 /* Now the real code */ 36 /* Now the real code */
38 . = ALIGN(0x20000); 37 . = ALIGN(0x20000);
38 _stext = .;
39 .text : AT (ADDR(.text) - LOAD_OFFSET) { 39 .text : AT (ADDR(.text) - LOAD_OFFSET) {
40 HEAD_TEXT 40 HEAD_TEXT
41 SCHED_TEXT 41 SCHED_TEXT
@@ -58,11 +58,13 @@ SECTIONS
58 #define LOAD_OFFSET PAGE_OFFSET 58 #define LOAD_OFFSET PAGE_OFFSET
59 59
60 . = ALIGN(PAGE_SIZE); 60 . = ALIGN(PAGE_SIZE);
61 __init_begin = .;
61 VMLINUX_SYMBOL(_sinitdata) = .; 62 VMLINUX_SYMBOL(_sinitdata) = .;
62 INIT_DATA_SECTION(16) :data =0 63 INIT_DATA_SECTION(16) :data =0
63 PERCPU_SECTION(L2_CACHE_BYTES) 64 PERCPU_SECTION(L2_CACHE_BYTES)
64 . = ALIGN(PAGE_SIZE); 65 . = ALIGN(PAGE_SIZE);
65 VMLINUX_SYMBOL(_einitdata) = .; 66 VMLINUX_SYMBOL(_einitdata) = .;
67 __init_end = .;
66 68
67 _sdata = .; /* Start of data section */ 69 _sdata = .; /* Start of data section */
68 70
diff --git a/arch/tile/mm/init.c b/arch/tile/mm/init.c
index 45ce26d4e474..f2ac2f405775 100644
--- a/arch/tile/mm/init.c
+++ b/arch/tile/mm/init.c
@@ -562,7 +562,7 @@ static void __init kernel_physical_mapping_init(pgd_t *pgd_base)
562 prot = ktext_set_nocache(prot); 562 prot = ktext_set_nocache(prot);
563 } 563 }
564 564
565 BUG_ON(address != (unsigned long)_stext); 565 BUG_ON(address != (unsigned long)_text);
566 pte = NULL; 566 pte = NULL;
567 for (; address < (unsigned long)_einittext; 567 for (; address < (unsigned long)_einittext;
568 pfn++, address += PAGE_SIZE) { 568 pfn++, address += PAGE_SIZE) {