diff options
| author | 2009-03-08 16:48:51 +0100 | |
|---|---|---|
| committer | 2009-03-08 16:48:51 +0100 | |
| commit | dba58e39ced7af63f2748d12bbb2b4ac83c72391 (patch) | |
| tree | ee15a5e7667b51d0d0f7e8cb39064652f7c84c28 /arch/x86/mm/pgtable.c | |
| parent | tracing: trace_bprintk() cleanups (diff) | |
| parent | x86: implement atomic text_poke() via fixmap (diff) | |
| download | linux-dev-dba58e39ced7af63f2748d12bbb2b4ac83c72391.tar.xz linux-dev-dba58e39ced7af63f2748d12bbb2b4ac83c72391.zip | |
Merge branches 'tracing/doc', 'tracing/ftrace', 'tracing/printk' and 'tracing/textedit' into tracing/core
Diffstat (limited to 'arch/x86/mm/pgtable.c')
| -rw-r--r-- | arch/x86/mm/pgtable.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index 86f2ffc43c3d..5b7c7c8464fe 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -313,6 +313,24 @@ int ptep_clear_flush_young(struct vm_area_struct *vma, return young; } +/** + * reserve_top_address - reserves a hole in the top of kernel address space + * @reserve - size of hole to reserve + * + * 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 __init reserve_top_address(unsigned long reserve) +{ +#ifdef CONFIG_X86_32 + 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; +#endif +} + int fixmaps_set; void __native_set_fixmap(enum fixed_addresses idx, pte_t pte) |
