]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/x86/kernel/head_32.S
i386: handle an initrd in highmem (version 2)
[linux-2.6-omap-h63xx.git] / arch / x86 / kernel / head_32.S
index 374b7ece89610e14fcebff09dd0711d27da040ff..fbad51fce672b25f4f30cf24ca81da8bc628a574 100644 (file)
@@ -193,6 +193,12 @@ default_entry:
        jb 10b
        movl %edi,(init_pg_tables_end - __PAGE_OFFSET)
 
+       /* Do an early initialization of the fixmap area */
+       movl $(swapper_pg_dir - __PAGE_OFFSET), %edx
+       movl $(swapper_pg_pmd - __PAGE_OFFSET), %eax
+       addl $0x67, %eax                        /* 0x67 == _PAGE_TABLE */
+       movl %eax, 4092(%edx)
+
        xorl %ebx,%ebx                          /* This is the boot CPU (BSP) */
        jmp 3f
 /*
@@ -208,12 +214,6 @@ default_entry:
 .section .init.text,"ax",@progbits
 #endif
 
-       /* Do an early initialization of the fixmap area */
-       movl $(swapper_pg_dir - __PAGE_OFFSET), %edx
-       movl $(swapper_pg_pmd - __PAGE_OFFSET), %eax
-       addl $0x007, %eax                       /* 0x007 = PRESENT+RW+USER */
-       movl %eax, 4092(%edx)
-
 #ifdef CONFIG_SMP
 ENTRY(startup_32_smp)
        cld