Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / arch / um / kernel / mem.c
index 6128016..44e41a3 100644 (file)
@@ -24,6 +24,8 @@
 #include "init.h"
 #include "kern_constants.h"
 
+extern char __binary_start;
+
 /* Changed during early boot */
 unsigned long *empty_zero_page = NULL;
 unsigned long *empty_bad_page = NULL;
@@ -63,6 +65,8 @@ static void setup_highmem(unsigned long highmem_start,
 
 void mem_init(void)
 {
+       unsigned long start;
+
        max_low_pfn = (high_physmem - uml_physmem) >> PAGE_SHIFT;
 
         /* clear the zero-page */
@@ -77,6 +81,13 @@ void mem_init(void)
        free_bootmem(__pa(brk_end), uml_reserved - brk_end);
        uml_reserved = brk_end;
 
+       /* Fill in any hole at the start of the binary */
+       start = (unsigned long) &__binary_start & PAGE_MASK;
+       if(uml_physmem != start){
+               map_memory(uml_physmem, __pa(uml_physmem), start - uml_physmem,
+                          1, 1, 0);
+       }
+
        /* this will put all low memory onto the freelists */
        totalram_pages = free_all_bootmem();
        totalhigh_pages = highmem >> PAGE_SHIFT;