patch-2.4.17 linux/mm/bootmem.c
Next file: linux/mm/filemap.c
Previous file: linux/kernel/time.c
Back to the patch index
Back to the overall index
- Lines: 30
- Date:
Fri Dec 21 16:40:33 2001
- Orig file:
linux-2.4.16/mm/bootmem.c
- Orig date:
Tue Sep 18 21:10:43 2001
diff -Naur -X /home/marcelo/lib/dontdiff linux-2.4.16/mm/bootmem.c linux/mm/bootmem.c
@@ -154,6 +154,12 @@
if (align & (align-1))
BUG();
+ offset = 0;
+ if (align &&
+ (bdata->node_boot_start & (align - 1UL)) != 0)
+ offset = (align - (bdata->node_boot_start & (align - 1UL)));
+ offset >>= PAGE_SHIFT;
+
/*
* We try to allocate bootmem pages above 'goal'
* first, then we try to allocate lower pages.
@@ -165,6 +171,7 @@
preferred = 0;
preferred = ((preferred + align - 1) & ~(align - 1)) >> PAGE_SHIFT;
+ preferred += offset;
areasize = (size+PAGE_SIZE-1)/PAGE_SIZE;
incr = align >> PAGE_SHIFT ? : 1;
@@ -184,7 +191,7 @@
fail_block:;
}
if (preferred) {
- preferred = 0;
+ preferred = offset;
goto restart_scan;
}
return NULL;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)