git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
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
diff --git
a/arch/um/kernel/mem.c
b/arch/um/kernel/mem.c
index
6128016
..
44e41a3
100644
(file)
--- a/
arch/um/kernel/mem.c
+++ b/
arch/um/kernel/mem.c
@@
-24,6
+24,8
@@
#include "init.h"
#include "kern_constants.h"
#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;
/* 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)
{
void mem_init(void)
{
+ unsigned long start;
+
max_low_pfn = (high_physmem - uml_physmem) >> PAGE_SHIFT;
/* clear the zero-page */
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;
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;
/* this will put all low memory onto the freelists */
totalram_pages = free_all_bootmem();
totalhigh_pages = highmem >> PAGE_SHIFT;