mtd/uclinux: Use generic __bss_stop instead of _ebss
The standard (see BSS_SECTION() in <asm-generic/vmlinux.lds.h> and <asm-generic/sections.h>) symbol for the end of BSS is __bss_stop. This allows to remove all local declarations that have been added to several architectures just to please CONFIG_MTD_UCLINUX. Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Paul Mundt <lethal@linux-sh.org> Acked-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Michal Simek <monstr@monstr.eu> Acked-by: Greg Ungerer <gerg@uclinux.org>
This commit is contained in:
parent
dfe1d26d4a
commit
363737d664
@ -52,7 +52,6 @@ EXPORT_SYMBOL(reserved_mem_dcache_on);
|
|||||||
#ifdef CONFIG_MTD_UCLINUX
|
#ifdef CONFIG_MTD_UCLINUX
|
||||||
extern struct map_info uclinux_ram_map;
|
extern struct map_info uclinux_ram_map;
|
||||||
unsigned long memory_mtd_end, memory_mtd_start, mtd_size;
|
unsigned long memory_mtd_end, memory_mtd_start, mtd_size;
|
||||||
unsigned long _ebss;
|
|
||||||
EXPORT_SYMBOL(memory_mtd_end);
|
EXPORT_SYMBOL(memory_mtd_end);
|
||||||
EXPORT_SYMBOL(memory_mtd_start);
|
EXPORT_SYMBOL(memory_mtd_start);
|
||||||
EXPORT_SYMBOL(mtd_size);
|
EXPORT_SYMBOL(mtd_size);
|
||||||
|
@ -18,10 +18,6 @@ extern char _ssbss[], _esbss[];
|
|||||||
extern unsigned long __ivt_start[], __ivt_end[];
|
extern unsigned long __ivt_start[], __ivt_end[];
|
||||||
extern char _etext[], _stext[];
|
extern char _etext[], _stext[];
|
||||||
|
|
||||||
# ifdef CONFIG_MTD_UCLINUX
|
|
||||||
extern char *_ebss;
|
|
||||||
# endif
|
|
||||||
|
|
||||||
extern u32 _fdt_start[], _fdt_end[];
|
extern u32 _fdt_start[], _fdt_end[];
|
||||||
|
|
||||||
# endif /* !__ASSEMBLY__ */
|
# endif /* !__ASSEMBLY__ */
|
||||||
|
@ -21,9 +21,6 @@
|
|||||||
#include <linux/ftrace.h>
|
#include <linux/ftrace.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
|
|
||||||
extern char *_ebss;
|
|
||||||
EXPORT_SYMBOL_GPL(_ebss);
|
|
||||||
|
|
||||||
#ifdef CONFIG_FUNCTION_TRACER
|
#ifdef CONFIG_FUNCTION_TRACER
|
||||||
extern void _mcount(void);
|
extern void _mcount(void);
|
||||||
EXPORT_SYMBOL(_mcount);
|
EXPORT_SYMBOL(_mcount);
|
||||||
|
@ -121,7 +121,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
|
|||||||
|
|
||||||
/* Move ROMFS out of BSS before clearing it */
|
/* Move ROMFS out of BSS before clearing it */
|
||||||
if (romfs_size > 0) {
|
if (romfs_size > 0) {
|
||||||
memmove(&_ebss, (int *)romfs_base, romfs_size);
|
memmove(&__bss_stop, (int *)romfs_base, romfs_size);
|
||||||
klimit += romfs_size;
|
klimit += romfs_size;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -165,7 +165,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
|
|||||||
BUG_ON(romfs_size < 0); /* What else can we do? */
|
BUG_ON(romfs_size < 0); /* What else can we do? */
|
||||||
|
|
||||||
printk("Moved 0x%08x bytes from 0x%08x to 0x%08x\n",
|
printk("Moved 0x%08x bytes from 0x%08x to 0x%08x\n",
|
||||||
romfs_size, romfs_base, (unsigned)&_ebss);
|
romfs_size, romfs_base, (unsigned)&__bss_stop);
|
||||||
|
|
||||||
printk("New klimit: 0x%08x\n", (unsigned)klimit);
|
printk("New klimit: 0x%08x\n", (unsigned)klimit);
|
||||||
#endif
|
#endif
|
||||||
|
@ -131,7 +131,6 @@ SECTIONS {
|
|||||||
*(COMMON)
|
*(COMMON)
|
||||||
. = ALIGN (4) ;
|
. = ALIGN (4) ;
|
||||||
__bss_stop = . ;
|
__bss_stop = . ;
|
||||||
_ebss = . ;
|
|
||||||
}
|
}
|
||||||
. = ALIGN(PAGE_SIZE);
|
. = ALIGN(PAGE_SIZE);
|
||||||
_end = .;
|
_end = .;
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
extern long __nosave_begin, __nosave_end;
|
extern long __nosave_begin, __nosave_end;
|
||||||
extern long __machvec_start, __machvec_end;
|
extern long __machvec_start, __machvec_end;
|
||||||
extern char __uncached_start, __uncached_end;
|
extern char __uncached_start, __uncached_end;
|
||||||
extern char _ebss[];
|
|
||||||
extern char __start_eh_frame[], __stop_eh_frame[];
|
extern char __start_eh_frame[], __stop_eh_frame[];
|
||||||
|
|
||||||
#endif /* __ASM_SH_SECTIONS_H */
|
#endif /* __ASM_SH_SECTIONS_H */
|
||||||
|
@ -273,7 +273,7 @@ void __init setup_arch(char **cmdline_p)
|
|||||||
data_resource.start = virt_to_phys(_etext);
|
data_resource.start = virt_to_phys(_etext);
|
||||||
data_resource.end = virt_to_phys(_edata)-1;
|
data_resource.end = virt_to_phys(_edata)-1;
|
||||||
bss_resource.start = virt_to_phys(__bss_start);
|
bss_resource.start = virt_to_phys(__bss_start);
|
||||||
bss_resource.end = virt_to_phys(_ebss)-1;
|
bss_resource.end = virt_to_phys(__bss_stop)-1;
|
||||||
|
|
||||||
#ifdef CONFIG_CMDLINE_OVERWRITE
|
#ifdef CONFIG_CMDLINE_OVERWRITE
|
||||||
strlcpy(command_line, CONFIG_CMDLINE, sizeof(command_line));
|
strlcpy(command_line, CONFIG_CMDLINE, sizeof(command_line));
|
||||||
|
@ -19,7 +19,6 @@ EXPORT_SYMBOL(csum_partial);
|
|||||||
EXPORT_SYMBOL(csum_partial_copy_generic);
|
EXPORT_SYMBOL(csum_partial_copy_generic);
|
||||||
EXPORT_SYMBOL(copy_page);
|
EXPORT_SYMBOL(copy_page);
|
||||||
EXPORT_SYMBOL(__clear_user);
|
EXPORT_SYMBOL(__clear_user);
|
||||||
EXPORT_SYMBOL(_ebss);
|
|
||||||
EXPORT_SYMBOL(empty_zero_page);
|
EXPORT_SYMBOL(empty_zero_page);
|
||||||
|
|
||||||
#define DECLARE_EXPORT(name) \
|
#define DECLARE_EXPORT(name) \
|
||||||
|
@ -78,7 +78,6 @@ SECTIONS
|
|||||||
. = ALIGN(PAGE_SIZE);
|
. = ALIGN(PAGE_SIZE);
|
||||||
__init_end = .;
|
__init_end = .;
|
||||||
BSS_SECTION(0, PAGE_SIZE, 4)
|
BSS_SECTION(0, PAGE_SIZE, 4)
|
||||||
_ebss = .; /* uClinux MTD sucks */
|
|
||||||
_end = . ;
|
_end = . ;
|
||||||
|
|
||||||
STABS_DEBUG
|
STABS_DEBUG
|
||||||
|
@ -39,7 +39,7 @@
|
|||||||
*
|
*
|
||||||
* Make sure the stack pointer contains a valid address. Valid
|
* Make sure the stack pointer contains a valid address. Valid
|
||||||
* addresses for kernel stacks are anywhere after the bss
|
* addresses for kernel stacks are anywhere after the bss
|
||||||
* (after _ebss) and anywhere in init_thread_union (init_stack).
|
* (after __bss_stop) and anywhere in init_thread_union (init_stack).
|
||||||
*/
|
*/
|
||||||
#define STACK_CHECK() \
|
#define STACK_CHECK() \
|
||||||
mov #(THREAD_SIZE >> 10), r0; \
|
mov #(THREAD_SIZE >> 10), r0; \
|
||||||
@ -60,7 +60,7 @@
|
|||||||
cmp/hi r2, r1; \
|
cmp/hi r2, r1; \
|
||||||
bf stack_panic; \
|
bf stack_panic; \
|
||||||
\
|
\
|
||||||
/* If sp > _ebss then we're OK. */ \
|
/* If sp > __bss_stop then we're OK. */ \
|
||||||
mov.l .L_ebss, r1; \
|
mov.l .L_ebss, r1; \
|
||||||
cmp/hi r1, r15; \
|
cmp/hi r1, r15; \
|
||||||
bt 1f; \
|
bt 1f; \
|
||||||
@ -70,7 +70,7 @@
|
|||||||
cmp/hs r1, r15; \
|
cmp/hs r1, r15; \
|
||||||
bf stack_panic; \
|
bf stack_panic; \
|
||||||
\
|
\
|
||||||
/* If sp > init_stack && sp < _ebss, not OK. */ \
|
/* If sp > init_stack && sp < __bss_stop, not OK. */ \
|
||||||
add r0, r1; \
|
add r0, r1; \
|
||||||
cmp/hs r1, r15; \
|
cmp/hs r1, r15; \
|
||||||
bt stack_panic; \
|
bt stack_panic; \
|
||||||
@ -292,8 +292,6 @@ stack_panic:
|
|||||||
nop
|
nop
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
.L_ebss:
|
|
||||||
.long _ebss
|
|
||||||
.L_init_thread_union:
|
.L_init_thread_union:
|
||||||
.long init_thread_union
|
.long init_thread_union
|
||||||
.Lpanic:
|
.Lpanic:
|
||||||
|
@ -19,14 +19,13 @@
|
|||||||
#include <linux/mtd/map.h>
|
#include <linux/mtd/map.h>
|
||||||
#include <linux/mtd/partitions.h>
|
#include <linux/mtd/partitions.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
#include <asm/sections.h>
|
||||||
|
|
||||||
/****************************************************************************/
|
/****************************************************************************/
|
||||||
|
|
||||||
extern char _ebss;
|
|
||||||
|
|
||||||
struct map_info uclinux_ram_map = {
|
struct map_info uclinux_ram_map = {
|
||||||
.name = "RAM",
|
.name = "RAM",
|
||||||
.phys = (unsigned long)&_ebss,
|
.phys = (unsigned long)__bss_stop,
|
||||||
.size = 0,
|
.size = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user