提交 321f6e0f 编写于 作者: M Mike Frysinger 提交者: Bryan Wu

Blackfin arch: mark our memory init functions with __init so they get freed after init

Signed-off-by: NMike Frysinger <michael.frysinger@analog.com>
Signed-off-by: NBryan Wu <bryan.wu@analog.com>
上级 5716e514
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Description: SRAM driver for Blackfin ADSP-BF5xx * Description: SRAM driver for Blackfin ADSP-BF5xx
* *
* Modified: * Modified:
* Copyright 2004-2006 Analog Devices Inc. * Copyright 2004-2007 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Bugs: Enter bugs at http://blackfin.uclinux.org/
* *
...@@ -80,7 +80,7 @@ static struct l1_sram_piece l1_inst_sram[CONFIG_L1_MAX_PIECE]; ...@@ -80,7 +80,7 @@ static struct l1_sram_piece l1_inst_sram[CONFIG_L1_MAX_PIECE];
#endif #endif
/* L1 Scratchpad SRAM initialization function */ /* L1 Scratchpad SRAM initialization function */
void l1sram_init(void) void __init l1sram_init(void)
{ {
printk(KERN_INFO "Blackfin Scratchpad data SRAM: %d KB\n", printk(KERN_INFO "Blackfin Scratchpad data SRAM: %d KB\n",
L1_SCRATCH_LENGTH >> 10); L1_SCRATCH_LENGTH >> 10);
...@@ -94,7 +94,7 @@ void l1sram_init(void) ...@@ -94,7 +94,7 @@ void l1sram_init(void)
spin_lock_init(&l1sram_lock); spin_lock_init(&l1sram_lock);
} }
void l1_data_sram_init(void) void __init l1_data_sram_init(void)
{ {
#if L1_DATA_A_LENGTH != 0 #if L1_DATA_A_LENGTH != 0
printk(KERN_INFO "Blackfin DATA_A SRAM: %d KB\n", printk(KERN_INFO "Blackfin DATA_A SRAM: %d KB\n",
...@@ -120,7 +120,7 @@ void l1_data_sram_init(void) ...@@ -120,7 +120,7 @@ void l1_data_sram_init(void)
spin_lock_init(&l1_data_sram_lock); spin_lock_init(&l1_data_sram_lock);
} }
void l1_inst_sram_init(void) void __init l1_inst_sram_init(void)
{ {
#if L1_CODE_LENGTH != 0 #if L1_CODE_LENGTH != 0
printk(KERN_INFO "Blackfin Instruction SRAM: %d KB\n", printk(KERN_INFO "Blackfin Instruction SRAM: %d KB\n",
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* Description: * Description:
* *
* Modified: * Modified:
* Copyright 2004-2006 Analog Devices Inc. * Copyright 2004-2007 Analog Devices Inc.
* *
* Bugs: Enter bugs at http://blackfin.uclinux.org/ * Bugs: Enter bugs at http://blackfin.uclinux.org/
* *
...@@ -53,7 +53,7 @@ static unsigned long empty_bad_page; ...@@ -53,7 +53,7 @@ static unsigned long empty_bad_page;
unsigned long empty_zero_page; unsigned long empty_zero_page;
void show_mem(void) void __init show_mem(void)
{ {
unsigned long i; unsigned long i;
int free = 0, total = 0, reserved = 0, shared = 0; int free = 0, total = 0, reserved = 0, shared = 0;
...@@ -86,7 +86,7 @@ void show_mem(void) ...@@ -86,7 +86,7 @@ void show_mem(void)
* The parameters are pointers to where to stick the starting and ending * The parameters are pointers to where to stick the starting and ending
* addresses of available kernel virtual memory. * addresses of available kernel virtual memory.
*/ */
void paging_init(void) void __init paging_init(void)
{ {
/* /*
* make sure start_mem is page aligned, otherwise bootmem and * make sure start_mem is page aligned, otherwise bootmem and
...@@ -125,7 +125,7 @@ void paging_init(void) ...@@ -125,7 +125,7 @@ void paging_init(void)
} }
} }
void mem_init(void) void __init mem_init(void)
{ {
unsigned int codek = 0, datak = 0, initk = 0; unsigned int codek = 0, datak = 0, initk = 0;
unsigned long tmp; unsigned long tmp;
...@@ -169,7 +169,7 @@ void mem_init(void) ...@@ -169,7 +169,7 @@ void mem_init(void)
} }
#ifdef CONFIG_BLK_DEV_INITRD #ifdef CONFIG_BLK_DEV_INITRD
void free_initrd_mem(unsigned long start, unsigned long end) void __init free_initrd_mem(unsigned long start, unsigned long end)
{ {
int pages = 0; int pages = 0;
for (; start < end; start += PAGE_SIZE) { for (; start < end; start += PAGE_SIZE) {
...@@ -183,14 +183,14 @@ void free_initrd_mem(unsigned long start, unsigned long end) ...@@ -183,14 +183,14 @@ void free_initrd_mem(unsigned long start, unsigned long end)
} }
#endif #endif
void free_initmem(void) void __init free_initmem(void)
{ {
#ifdef CONFIG_RAMKERNEL #ifdef CONFIG_RAMKERNEL
unsigned long addr; unsigned long addr;
/* /*
* the following code should be cool even if these sections * the following code should be cool even if these sections
* are not page aligned. * are not page aligned.
*/ */
addr = PAGE_ALIGN((unsigned long)(__init_begin)); addr = PAGE_ALIGN((unsigned long)(__init_begin));
/* next to check that the page we free is not a partial page */ /* next to check that the page we free is not a partial page */
for (; addr + PAGE_SIZE < (unsigned long)(__init_end); for (; addr + PAGE_SIZE < (unsigned long)(__init_end);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册