提交 86ed40bd 编写于 作者: S Sam Ravnborg 提交者: David S. Miller

sparc: unify sections.h

While doing this use standard names for start/end
so we could use definitions straight from asm-generic
for all the typical symbols.

This also allowed us to drop the use of PROVIDE in the linker
script so sprc is less non-standard on this area.
Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 b74e34db
#ifndef ___ASM_SPARC_SECTIONS_H #ifndef __SPARC_SECTIONS_H
#define ___ASM_SPARC_SECTIONS_H #define __SPARC_SECTIONS_H
#if defined(__sparc__) && defined(__arch64__)
#include <asm/sections_64.h> /* nothing to see, move along */
#else #include <asm-generic/sections.h>
#include <asm/sections_32.h>
#endif /* sparc entry point */
extern char _start[];
#endif #endif
#ifndef _SPARC_SECTIONS_H
#define _SPARC_SECTIONS_H
#include <asm-generic/sections.h>
#endif
#ifndef _SPARC64_SECTIONS_H
#define _SPARC64_SECTIONS_H
/* nothing to see, move along */
#include <asm-generic/sections.h>
extern char _start[];
#endif
...@@ -990,7 +990,7 @@ sun4c_continue_boot: ...@@ -990,7 +990,7 @@ sun4c_continue_boot:
/* Zero out our BSS section. */ /* Zero out our BSS section. */
set __bss_start , %o0 ! First address of BSS set __bss_start , %o0 ! First address of BSS
set end , %o1 ! Last address of BSS set _end , %o1 ! Last address of BSS
add %o0, 0x1, %o0 add %o0, 0x1, %o0
1: 1:
stb %g0, [%o0] stb %g0, [%o0]
......
...@@ -49,7 +49,6 @@ SECTIONS ...@@ -49,7 +49,6 @@ SECTIONS
*(.gnu.warning) *(.gnu.warning)
} = 0 } = 0
_etext = .; _etext = .;
PROVIDE (etext = .);
RO_DATA(PAGE_SIZE) RO_DATA(PAGE_SIZE)
.data : { .data : {
...@@ -69,7 +68,6 @@ SECTIONS ...@@ -69,7 +68,6 @@ SECTIONS
} }
/* End of data section */ /* End of data section */
_edata = .; _edata = .;
PROVIDE (edata = .);
/* init_task */ /* init_task */
. = ALIGN(THREAD_SIZE); . = ALIGN(THREAD_SIZE);
...@@ -172,7 +170,6 @@ SECTIONS ...@@ -172,7 +170,6 @@ SECTIONS
*(COMMON) *(COMMON)
} }
_end = . ; _end = . ;
PROVIDE (end = .);
/DISCARD/ : { /DISCARD/ : {
EXIT_TEXT EXIT_TEXT
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/poison.h> #include <linux/poison.h>
#include <asm/sections.h>
#include <asm/system.h> #include <asm/system.h>
#include <asm/vac-ops.h> #include <asm/vac-ops.h>
#include <asm/page.h> #include <asm/page.h>
...@@ -48,9 +49,6 @@ unsigned long sparc_unmapped_base; ...@@ -48,9 +49,6 @@ unsigned long sparc_unmapped_base;
struct pgtable_cache_struct pgt_quicklists; struct pgtable_cache_struct pgt_quicklists;
/* References to section boundaries */
extern char __init_begin, __init_end, _start, _end, etext , edata;
/* Initial ramdisk setup */ /* Initial ramdisk setup */
extern unsigned int sparc_ramdisk_image; extern unsigned int sparc_ramdisk_image;
extern unsigned int sparc_ramdisk_size; extern unsigned int sparc_ramdisk_size;
...@@ -450,9 +448,9 @@ void __init mem_init(void) ...@@ -450,9 +448,9 @@ void __init mem_init(void)
totalram_pages += totalhigh_pages; totalram_pages += totalhigh_pages;
codepages = (((unsigned long) &etext) - ((unsigned long)&_start)); codepages = (((unsigned long) &_etext) - ((unsigned long)&_start));
codepages = PAGE_ALIGN(codepages) >> PAGE_SHIFT; codepages = PAGE_ALIGN(codepages) >> PAGE_SHIFT;
datapages = (((unsigned long) &edata) - ((unsigned long)&etext)); datapages = (((unsigned long) &_edata) - ((unsigned long)&_etext));
datapages = PAGE_ALIGN(datapages) >> PAGE_SHIFT; datapages = PAGE_ALIGN(datapages) >> PAGE_SHIFT;
initpages = (((unsigned long) &__init_end) - ((unsigned long) &__init_begin)); initpages = (((unsigned long) &__init_end) - ((unsigned long) &__init_begin));
initpages = PAGE_ALIGN(initpages) >> PAGE_SHIFT; initpages = PAGE_ALIGN(initpages) >> PAGE_SHIFT;
...@@ -476,8 +474,10 @@ void __init mem_init(void) ...@@ -476,8 +474,10 @@ void __init mem_init(void)
void free_initmem (void) void free_initmem (void)
{ {
unsigned long addr; unsigned long addr;
unsigned long freed;
addr = (unsigned long)(&__init_begin); addr = (unsigned long)(&__init_begin);
freed = (unsigned long)(&__init_end) - addr;
for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) { for (; addr < (unsigned long)(&__init_end); addr += PAGE_SIZE) {
struct page *p; struct page *p;
...@@ -490,8 +490,8 @@ void free_initmem (void) ...@@ -490,8 +490,8 @@ void free_initmem (void)
totalram_pages++; totalram_pages++;
num_physpages++; num_physpages++;
} }
printk(KERN_INFO "Freeing unused kernel memory: %dk freed\n", printk(KERN_INFO "Freeing unused kernel memory: %ldk freed\n",
(&__init_end - &__init_begin) >> 10); freed >> 10);
} }
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/scatterlist.h> #include <linux/scatterlist.h>
#include <asm/sections.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
...@@ -1951,7 +1952,6 @@ void sun4c_update_mmu_cache(struct vm_area_struct *vma, unsigned long address, p ...@@ -1951,7 +1952,6 @@ void sun4c_update_mmu_cache(struct vm_area_struct *vma, unsigned long address, p
} }
extern void sparc_context_init(int); extern void sparc_context_init(int);
extern unsigned long end;
extern unsigned long bootmem_init(unsigned long *pages_avail); extern unsigned long bootmem_init(unsigned long *pages_avail);
extern unsigned long last_valid_pfn; extern unsigned long last_valid_pfn;
...@@ -1962,7 +1962,7 @@ void __init sun4c_paging_init(void) ...@@ -1962,7 +1962,7 @@ void __init sun4c_paging_init(void)
extern struct resource sparc_iomap; extern struct resource sparc_iomap;
unsigned long end_pfn, pages_avail; unsigned long end_pfn, pages_avail;
kernel_end = (unsigned long) &end; kernel_end = (unsigned long) &_end;
kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end); kernel_end = SUN4C_REAL_PGDIR_ALIGN(kernel_end);
pages_avail = 0; pages_avail = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册