x86: Use the generic page_is_ram()
The generic resource based page_is_ram() works better with memory hotplug/hotremove. So switch the x86 e820map based code to it. CC: Andi Kleen <andi@firstfloor.org> CC: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> CC: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Wu Fengguang <fengguang.wu@intel.com> LKML-Reference: <20100122033004.470767217@intel.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
1b5576e69a
commit
13ca0fcaa3
|
@ -40,7 +40,6 @@
|
|||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
extern int page_is_ram(unsigned long pagenr);
|
||||
extern int devmem_is_allowed(unsigned long pagenr);
|
||||
|
||||
extern unsigned long max_low_pfn_mapped;
|
||||
|
|
|
@ -24,27 +24,6 @@
|
|||
|
||||
#include "physaddr.h"
|
||||
|
||||
int page_is_ram(unsigned long pagenr)
|
||||
{
|
||||
resource_size_t addr, end;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < e820.nr_map; i++) {
|
||||
/*
|
||||
* Not usable memory:
|
||||
*/
|
||||
if (e820.map[i].type != E820_RAM)
|
||||
continue;
|
||||
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.
|
||||
|
|
Loading…
Reference in a new issue