summaryrefslogtreecommitdiff
path: root/arch/i386/mm/init.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:33:15 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 20:33:15 -0800
commitd40d1af9f0aebf7e108f1dfb66ac5af671bc9719 (patch)
tree7a2518e82986a8eb5b4eb76553df04d8ba6e4642 /arch/i386/mm/init.c
parenta8a2069f432c5597bdf9c83ab3045b9ef32ab5e3 (diff)
v2.4.14.2 -> v2.4.14.3
- Alan Cox: more driver merging - Al Viro: make ext2 group allocation more readable
Diffstat (limited to 'arch/i386/mm/init.c')
-rw-r--r--arch/i386/mm/init.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c
index 95e063f0fd5d..f0c3b00c0a51 100644
--- a/arch/i386/mm/init.c
+++ b/arch/i386/mm/init.c
@@ -439,13 +439,24 @@ static inline int page_is_ram (unsigned long pagenr)
return 0;
}
+static inline int page_kills_ppro(unsigned long pagenr)
+{
+ if(pagenr >= 0x70000 && pagenr <= 0x7003F)
+ return 1;
+ return 0;
+}
+
void __init mem_init(void)
{
+ extern int ppro_with_ram_bug(void);
int codesize, reservedpages, datasize, initsize;
int tmp;
+ int bad_ppro;
if (!mem_map)
BUG();
+
+ bad_ppro = ppro_with_ram_bug();
#ifdef CONFIG_HIGHMEM
highmem_start_page = mem_map + highstart_pfn;
@@ -476,6 +487,11 @@ void __init mem_init(void)
SetPageReserved(page);
continue;
}
+ if (bad_ppro && page_kills_ppro(tmp))
+ {
+ SetPageReserved(page);
+ continue;
+ }
ClearPageReserved(page);
set_bit(PG_highmem, &page->flags);
atomic_set(&page->count, 1);