diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-01-30 13:34:06 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 13:34:06 +0100 |
commit | 5f5192b9feeff6a96c97c143c3ca558fdbe2dc8e (patch) | |
tree | 4abe5cf23d4cb4a052af8c26c80451b368392ee8 /arch/x86 | |
parent | e1271f686a0e376aa6ee97984c16f91a787e4480 (diff) | |
download | blackbird-op-linux-5f5192b9feeff6a96c97c143c3ca558fdbe2dc8e.tar.gz blackbird-op-linux-5f5192b9feeff6a96c97c143c3ca558fdbe2dc8e.zip |
x86: move page_is_ram() function
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/mm/init_32.c | 22 | ||||
-rw-r--r-- | arch/x86/mm/ioremap.c | 24 |
2 files changed, 24 insertions, 22 deletions
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c index 7c9bb3076b8a..f7b941c3b2c3 100644 --- a/arch/x86/mm/init_32.c +++ b/arch/x86/mm/init_32.c @@ -211,28 +211,6 @@ static inline int page_kills_ppro(unsigned long pagenr) return 0; } -int page_is_ram(unsigned long pagenr) -{ - int i; - unsigned long addr, end; - - for (i = 0; i < e820.nr_map; i++) { - - if (e820.map[i].type != E820_RAM) /* not usable memory */ - continue; - /* - * !!!FIXME!!! Some BIOSen report areas as RAM that - * are not. Notably the 640->1Mb area. We need a sanity - * check here. - */ - addr = (e820.map[i].addr+PAGE_SIZE-1) >> PAGE_SHIFT; - end = (e820.map[i].addr+e820.map[i].size) >> PAGE_SHIFT; - if ((pagenr >= addr) && (pagenr < end)) - return 1; - } - return 0; -} - #ifdef CONFIG_HIGHMEM pte_t *kmap_pte; pgprot_t kmap_prot; diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index f4a2082568c8..d3026e1906f9 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -31,6 +31,30 @@ EXPORT_SYMBOL(__phys_addr); #endif +int page_is_ram(unsigned long pagenr) +{ + unsigned long addr, end; + int i; + + for (i = 0; i < e820.nr_map; i++) { + /* + * Not usable memory: + */ + if (e820.map[i].type != E820_RAM) + continue; + /* + * !!!FIXME!!! Some BIOSen report areas as RAM that + * are not. Notably the 640->1Mb area. We need a sanity + * check here. + */ + addr = (e820.map[i].addr + PAGE_SIZE-1) >> PAGE_SHIFT; + end = (e820.map[i].addr + e820.map[i].size) >> PAGE_SHIFT; + if ((pagenr >= addr) && (pagenr < end)) + return 1; + } + return 0; +} + /* * Fix up the linear direct mapping of the kernel to avoid cache attribute * conflicts. |