]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/x86/kernel/trampoline.c
Merge commit 'v2.6.36-rc3' into x86/memblock
[mv-sheeva.git] / arch / x86 / kernel / trampoline.c
index 7c2102c2aadfb42e41c2aefc7167dacebe7c16c9..9a3d44c0df9aa3368de67ea6155d33ed55d6a891 100644 (file)
@@ -2,6 +2,7 @@
 #include <linux/memblock.h>
 
 #include <asm/trampoline.h>
+#include <asm/pgtable.h>
 
 #if defined(CONFIG_X86_64) && defined(CONFIG_ACPI_SLEEP)
 #define __trampinit
@@ -37,3 +38,20 @@ unsigned long __trampinit setup_trampoline(void)
        memcpy(trampoline_base, trampoline_data, TRAMPOLINE_SIZE);
        return virt_to_phys(trampoline_base);
 }
+
+void __init setup_trampoline_page_table(void)
+{
+#ifdef CONFIG_X86_32
+       /* Copy kernel address range */
+       clone_pgd_range(trampoline_pg_dir + KERNEL_PGD_BOUNDARY,
+                       swapper_pg_dir + KERNEL_PGD_BOUNDARY,
+                       min_t(unsigned long, KERNEL_PGD_PTRS,
+                             KERNEL_PGD_BOUNDARY));
+
+       /* Initialize low mappings */
+       clone_pgd_range(trampoline_pg_dir,
+                       swapper_pg_dir + KERNEL_PGD_BOUNDARY,
+                       min_t(unsigned long, KERNEL_PGD_PTRS,
+                             KERNEL_PGD_BOUNDARY));
+#endif
+}