Skip to content

Commit

Permalink
uml: more __init annotations
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Jeff Dike authored and Linus Torvalds committed Jul 24, 2007
1 parent da3e30e commit 97a1fcb
Show file tree
Hide file tree
Showing 6 changed files with 12 additions and 17 deletions.
4 changes: 2 additions & 2 deletions arch/um/drivers/mconsole_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,7 @@ static struct mc_device mem_mc = {
.remove = mem_remove,
};

static int mem_mc_init(void)
static int __init mem_mc_init(void)
{
if(can_drop_memory())
mconsole_register_dev(&mem_mc);
Expand Down Expand Up @@ -798,7 +798,7 @@ void mconsole_stack(struct mc_request *req)
*/
static char *notify_socket = NULL;

static int mconsole_init(void)
static int __init mconsole_init(void)
{
/* long to avoid size mismatch warnings from gcc */
long sock;
Expand Down
2 changes: 1 addition & 1 deletion arch/um/drivers/net_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ static int eth_setup_common(char *str, int index)
return found;
}

static int eth_setup(char *str)
static int __init eth_setup(char *str)
{
struct eth_init *new;
char *error;
Expand Down
2 changes: 1 addition & 1 deletion arch/um/kernel/mem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
15 changes: 5 additions & 10 deletions arch/um/kernel/physmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;

Expand Down Expand Up @@ -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));
Expand Down
4 changes: 2 additions & 2 deletions arch/um/kernel/skas/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion arch/um/os-Linux/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ int os_unmap_memory(void *addr, int len)
#define MADV_REMOVE KERNEL_MADV_REMOVE
#endif

int __init os_drop_memory(void *addr, int length)
int os_drop_memory(void *addr, int length)
{
int err;

Expand Down

0 comments on commit 97a1fcb

Please sign in to comment.