Skip to content

Commit

Permalink
x86: move reservetop and vmalloc parsing to pgtable_32.c
Browse files Browse the repository at this point in the history
also change reserve_top_address to __init attibute

Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Yinghai Lu authored and Ingo Molnar committed Jul 8, 2008
1 parent 90d967e commit bef1568
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 34 deletions.
33 changes: 0 additions & 33 deletions arch/x86/kernel/setup_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,39 +184,6 @@ static inline void copy_edd(void)
}
#endif

/*
* vmalloc=size forces the vmalloc area to be exactly 'size'
* bytes. This can be used to increase (or decrease) the
* vmalloc area - the default is 128m.
*/
static int __init parse_vmalloc(char *arg)
{
if (!arg)
return -EINVAL;

__VMALLOC_RESERVE = memparse(arg, &arg);
return 0;
}
early_param("vmalloc", parse_vmalloc);

/*
* reservetop=size reserves a hole at the top of the kernel address space which
* a hypervisor can load into later. Needed for dynamically loaded hypervisors,
* so relocating the fixmap can be done before paging initialization.
*/
static int __init parse_reservetop(char *arg)
{
unsigned long address;

if (!arg)
return -EINVAL;

address = memparse(arg, &arg);
reserve_top_address(address);
return 0;
}
early_param("reservetop", parse_reservetop);

#ifdef CONFIG_BLK_DEV_INITRD

static bool do_relocate_initrd = false;
Expand Down
35 changes: 34 additions & 1 deletion arch/x86/mm/pgtable_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,44 @@ EXPORT_SYMBOL(__FIXADDR_TOP);
* Can be used to relocate the fixmap area and poke a hole in the top
* of kernel address space to make room for a hypervisor.
*/
void reserve_top_address(unsigned long reserve)
void __init reserve_top_address(unsigned long reserve)
{
BUG_ON(fixmaps_set > 0);
printk(KERN_INFO "Reserving virtual address space above 0x%08x\n",
(int)-reserve);
__FIXADDR_TOP = -reserve - PAGE_SIZE;
__VMALLOC_RESERVE += reserve;
}

/*
* vmalloc=size forces the vmalloc area to be exactly 'size'
* bytes. This can be used to increase (or decrease) the
* vmalloc area - the default is 128m.
*/
static int __init parse_vmalloc(char *arg)
{
if (!arg)
return -EINVAL;

__VMALLOC_RESERVE = memparse(arg, &arg);
return 0;
}
early_param("vmalloc", parse_vmalloc);

/*
* reservetop=size reserves a hole at the top of the kernel address space which
* a hypervisor can load into later. Needed for dynamically loaded hypervisors,
* so relocating the fixmap can be done before paging initialization.
*/
static int __init parse_reservetop(char *arg)
{
unsigned long address;

if (!arg)
return -EINVAL;

address = memparse(arg, &arg);
reserve_top_address(address);
return 0;
}
early_param("reservetop", parse_reservetop);

0 comments on commit bef1568

Please sign in to comment.