uml: more __init annotations
2.6.23-rc1 turned up another batch of references from non-__init code to __init code. In most cases, these were missing __init annotations. In one case (os_drop_memory), the annotation was present but wrong. init_maps is __init, but for some reason was being very careful about the mechanism by which it allocated memory, checking whether it was OK to use kmalloc (at this point in the boot, it definitely isn't) and using either alloc_bootmem_low_pages or kmalloc/vmalloc. So, the kmalloc/vmalloc code is removed. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
da3e30e78e
commit
97a1fcbb20
@@ -62,7 +62,7 @@ static void setup_highmem(unsigned long highmem_start,
|
||||
}
|
||||
#endif
|
||||
|
||||
void mem_init(void)
|
||||
void __init mem_init(void)
|
||||
{
|
||||
/* clear the zero-page */
|
||||
memset((void *) empty_zero_page, 0, PAGE_SIZE);
|
||||
|
||||
@@ -28,7 +28,8 @@ unsigned long high_physmem;
|
||||
|
||||
extern unsigned long long physmem_size;
|
||||
|
||||
int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
|
||||
int __init init_maps(unsigned long physmem, unsigned long iomem,
|
||||
unsigned long highmem)
|
||||
{
|
||||
struct page *p, *map;
|
||||
unsigned long phys_len, phys_pages, highmem_len, highmem_pages;
|
||||
@@ -47,13 +48,7 @@ int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
|
||||
total_pages = phys_pages + iomem_pages + highmem_pages;
|
||||
total_len = phys_len + iomem_len + highmem_len;
|
||||
|
||||
if(kmalloc_ok){
|
||||
map = kmalloc(total_len, GFP_KERNEL);
|
||||
if(map == NULL)
|
||||
map = vmalloc(total_len);
|
||||
}
|
||||
else map = alloc_bootmem_low_pages(total_len);
|
||||
|
||||
map = alloc_bootmem_low_pages(total_len);
|
||||
if(map == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -98,8 +93,8 @@ void map_memory(unsigned long virt, unsigned long phys, unsigned long len,
|
||||
|
||||
extern int __syscall_stub_start;
|
||||
|
||||
void setup_physmem(unsigned long start, unsigned long reserve_end,
|
||||
unsigned long len, unsigned long long highmem)
|
||||
void __init setup_physmem(unsigned long start, unsigned long reserve_end,
|
||||
unsigned long len, unsigned long long highmem)
|
||||
{
|
||||
unsigned long reserve = reserve_end - start;
|
||||
int pfn = PFN_UP(__pa(reserve_end));
|
||||
|
||||
@@ -145,7 +145,7 @@ void init_idle_skas(void)
|
||||
|
||||
extern void start_kernel(void);
|
||||
|
||||
static int start_kernel_proc(void *unused)
|
||||
static int __init start_kernel_proc(void *unused)
|
||||
{
|
||||
int pid;
|
||||
|
||||
@@ -165,7 +165,7 @@ extern int userspace_pid[];
|
||||
|
||||
extern char cpu0_irqstack[];
|
||||
|
||||
int start_uml_skas(void)
|
||||
int __init start_uml_skas(void)
|
||||
{
|
||||
stack_protections((unsigned long) &cpu0_irqstack);
|
||||
set_sigstack(cpu0_irqstack, THREAD_SIZE);
|
||||
|
||||
Reference in New Issue
Block a user