Commit 37efe642 authored by Russell King's avatar Russell King Committed by Russell King

[ARM] use asm/sections.h

Update to use the asm/sections.h header rather than declaring these
symbols ourselves.  Change __data_start to _data to conform with the
naming found within asm/sections.h.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 11224303
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
__switch_data: __switch_data:
.long __mmap_switched .long __mmap_switched
.long __data_loc @ r4 .long __data_loc @ r4
.long __data_start @ r5 .long _data @ r5
.long __bss_start @ r6 .long __bss_start @ r6
.long _end @ r7 .long _end @ r7
.long processor_id @ r4 .long processor_id @ r4
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/sections.h>
#ifdef CONFIG_XIP_KERNEL #ifdef CONFIG_XIP_KERNEL
/* /*
...@@ -29,9 +30,8 @@ ...@@ -29,9 +30,8 @@
* MODULES_VADDR is redefined here and not in asm/memory.h to avoid * MODULES_VADDR is redefined here and not in asm/memory.h to avoid
* recompiling the whole kernel when CONFIG_XIP_KERNEL is turned on/off. * recompiling the whole kernel when CONFIG_XIP_KERNEL is turned on/off.
*/ */
extern void _etext;
#undef MODULES_VADDR #undef MODULES_VADDR
#define MODULES_VADDR (((unsigned long)&_etext + ~PGDIR_MASK) & PGDIR_MASK) #define MODULES_VADDR (((unsigned long)_etext + ~PGDIR_MASK) & PGDIR_MASK)
#endif #endif
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <asm/cputype.h> #include <asm/cputype.h>
#include <asm/elf.h> #include <asm/elf.h>
#include <asm/procinfo.h> #include <asm/procinfo.h>
#include <asm/sections.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
...@@ -61,7 +62,6 @@ __setup("fpe=", fpe_setup); ...@@ -61,7 +62,6 @@ __setup("fpe=", fpe_setup);
extern void paging_init(struct machine_desc *desc); extern void paging_init(struct machine_desc *desc);
extern void reboot_setup(char *str); extern void reboot_setup(char *str);
extern void _text, _etext, __data_start, _edata, _end;
unsigned int processor_id; unsigned int processor_id;
EXPORT_SYMBOL(processor_id); EXPORT_SYMBOL(processor_id);
...@@ -484,10 +484,10 @@ request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc) ...@@ -484,10 +484,10 @@ request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc)
struct resource *res; struct resource *res;
int i; int i;
kernel_code.start = virt_to_phys(&_text); kernel_code.start = virt_to_phys(_text);
kernel_code.end = virt_to_phys(&_etext - 1); kernel_code.end = virt_to_phys(_etext - 1);
kernel_data.start = virt_to_phys(&__data_start); kernel_data.start = virt_to_phys(_data);
kernel_data.end = virt_to_phys(&_end - 1); kernel_data.end = virt_to_phys(_end - 1);
for (i = 0; i < mi->nr_banks; i++) { for (i = 0; i < mi->nr_banks; i++) {
if (mi->bank[i].size == 0) if (mi->bank[i].size == 0)
...@@ -715,10 +715,10 @@ void __init setup_arch(char **cmdline_p) ...@@ -715,10 +715,10 @@ void __init setup_arch(char **cmdline_p)
parse_tags(tags); parse_tags(tags);
} }
init_mm.start_code = (unsigned long) &_text; init_mm.start_code = (unsigned long) _text;
init_mm.end_code = (unsigned long) &_etext; init_mm.end_code = (unsigned long) _etext;
init_mm.end_data = (unsigned long) &_edata; init_mm.end_data = (unsigned long) _edata;
init_mm.brk = (unsigned long) &_end; init_mm.brk = (unsigned long) _end;
memcpy(boot_command_line, from, COMMAND_LINE_SIZE); memcpy(boot_command_line, from, COMMAND_LINE_SIZE);
boot_command_line[COMMAND_LINE_SIZE-1] = '\0'; boot_command_line[COMMAND_LINE_SIZE-1] = '\0';
......
...@@ -119,7 +119,7 @@ SECTIONS ...@@ -119,7 +119,7 @@ SECTIONS
#endif #endif
.data : AT(__data_loc) { .data : AT(__data_loc) {
__data_start = .; /* address in memory */ _data = .; /* address in memory */
/* /*
* first, the init task union, aligned * first, the init task union, aligned
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <linux/initrd.h> #include <linux/initrd.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/sections.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/sizes.h> #include <asm/sizes.h>
#include <asm/tlb.h> #include <asm/tlb.h>
...@@ -129,7 +130,7 @@ find_bootmap_pfn(int node, struct meminfo *mi, unsigned int bootmap_pages) ...@@ -129,7 +130,7 @@ find_bootmap_pfn(int node, struct meminfo *mi, unsigned int bootmap_pages)
{ {
unsigned int start_pfn, i, bootmap_pfn; unsigned int start_pfn, i, bootmap_pfn;
start_pfn = PAGE_ALIGN(__pa(&_end)) >> PAGE_SHIFT; start_pfn = PAGE_ALIGN(__pa(_end)) >> PAGE_SHIFT;
bootmap_pfn = 0; bootmap_pfn = 0;
for_each_nodebank(i, mi, node) { for_each_nodebank(i, mi, node) {
...@@ -515,9 +516,9 @@ void __init mem_init(void) ...@@ -515,9 +516,9 @@ void __init mem_init(void)
} }
printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT)); printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT));
codesize = &_etext - &_text; codesize = _etext - _text;
datasize = &_end - &__data_start; datasize = _end - _data;
initsize = &__init_end - &__init_begin; initsize = __init_end - __init_begin;
printk(KERN_NOTICE "Memory: %luKB available (%dK code, " printk(KERN_NOTICE "Memory: %luKB available (%dK code, "
"%dK data, %dK init)\n", "%dK data, %dK init)\n",
...@@ -538,8 +539,8 @@ void __init mem_init(void) ...@@ -538,8 +539,8 @@ void __init mem_init(void)
void free_initmem(void) void free_initmem(void)
{ {
if (!machine_is_integrator() && !machine_is_cintegrator()) if (!machine_is_integrator() && !machine_is_cintegrator())
totalram_pages += free_area(__phys_to_pfn(__pa(&__init_begin)), totalram_pages += free_area(__phys_to_pfn(__pa(__init_begin)),
__phys_to_pfn(__pa(&__init_end)), __phys_to_pfn(__pa(__init_end)),
"init"); "init");
} }
......
...@@ -34,5 +34,3 @@ struct pglist_data; ...@@ -34,5 +34,3 @@ struct pglist_data;
void __init create_mapping(struct map_desc *md); void __init create_mapping(struct map_desc *md);
void __init bootmem_init(void); void __init bootmem_init(void);
void reserve_node_zero(struct pglist_data *pgdat); void reserve_node_zero(struct pglist_data *pgdat);
extern void _text, _stext, _etext, __data_start, _end, __init_begin, __init_end;
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include <asm/cputype.h> #include <asm/cputype.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/sections.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/sizes.h> #include <asm/sizes.h>
#include <asm/tlb.h> #include <asm/tlb.h>
...@@ -730,7 +731,7 @@ static inline void prepare_page_table(void) ...@@ -730,7 +731,7 @@ static inline void prepare_page_table(void)
#ifdef CONFIG_XIP_KERNEL #ifdef CONFIG_XIP_KERNEL
/* The XIP kernel is mapped in the module area -- skip over it */ /* The XIP kernel is mapped in the module area -- skip over it */
addr = ((unsigned long)&_etext + PGDIR_SIZE - 1) & PGDIR_MASK; addr = ((unsigned long)_etext + PGDIR_SIZE - 1) & PGDIR_MASK;
#endif #endif
for ( ; addr < PAGE_OFFSET; addr += PGDIR_SIZE) for ( ; addr < PAGE_OFFSET; addr += PGDIR_SIZE)
pmd_clear(pmd_off_k(addr)); pmd_clear(pmd_off_k(addr));
...@@ -756,10 +757,10 @@ void __init reserve_node_zero(pg_data_t *pgdat) ...@@ -756,10 +757,10 @@ void __init reserve_node_zero(pg_data_t *pgdat)
* Note that this can only be in node 0. * Note that this can only be in node 0.
*/ */
#ifdef CONFIG_XIP_KERNEL #ifdef CONFIG_XIP_KERNEL
reserve_bootmem_node(pgdat, __pa(&__data_start), &_end - &__data_start, reserve_bootmem_node(pgdat, __pa(_data), _end - _data,
BOOTMEM_DEFAULT); BOOTMEM_DEFAULT);
#else #else
reserve_bootmem_node(pgdat, __pa(&_stext), &_end - &_stext, reserve_bootmem_node(pgdat, __pa(_stext), _end - _stext,
BOOTMEM_DEFAULT); BOOTMEM_DEFAULT);
#endif #endif
...@@ -838,7 +839,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc) ...@@ -838,7 +839,7 @@ static void __init devicemaps_init(struct machine_desc *mdesc)
#ifdef CONFIG_XIP_KERNEL #ifdef CONFIG_XIP_KERNEL
map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK); map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
map.virtual = MODULES_VADDR; map.virtual = MODULES_VADDR;
map.length = ((unsigned long)&_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK; map.length = ((unsigned long)_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
map.type = MT_ROM; map.type = MT_ROM;
create_mapping(&map); create_mapping(&map);
#endif #endif
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/sections.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
...@@ -25,10 +26,10 @@ void __init reserve_node_zero(pg_data_t *pgdat) ...@@ -25,10 +26,10 @@ void __init reserve_node_zero(pg_data_t *pgdat)
* Note that this can only be in node 0. * Note that this can only be in node 0.
*/ */
#ifdef CONFIG_XIP_KERNEL #ifdef CONFIG_XIP_KERNEL
reserve_bootmem_node(pgdat, __pa(&__data_start), &_end - &__data_start, reserve_bootmem_node(pgdat, __pa(_data), _end - _data,
BOOTMEM_DEFAULT); BOOTMEM_DEFAULT);
#else #else
reserve_bootmem_node(pgdat, __pa(&_stext), &_end - &_stext, reserve_bootmem_node(pgdat, __pa(_stext), _end - _stext,
BOOTMEM_DEFAULT); BOOTMEM_DEFAULT);
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment