mirror of https://gitee.com/openkylin/linux.git
[PATCH] unify pfn_to_page: ia64 pfn_to_page
ia64 has special config CONFIG_VIRTUAL_MEM_MAP. CONFIG_DISCONTIGMEM=y && CONFIG_VIRTUAL_MEM_MAP!=y is bug ? Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
655a044347
commit
0ecd702bcb
|
@ -106,17 +106,25 @@ extern int ia64_pfn_valid (unsigned long pfn);
|
|||
# define ia64_pfn_valid(pfn) 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VIRTUAL_MEM_MAP
|
||||
extern struct page *vmem_map;
|
||||
#ifdef CONFIG_DISCONTIGMEM
|
||||
# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
|
||||
# define pfn_to_page(pfn) (vmem_map + (pfn))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_FLATMEM) || defined(CONFIG_SPARSEMEM)
|
||||
/* FLATMEM always configures mem_map (mem_map = vmem_map if necessary) */
|
||||
#include <asm-generic/memory_model.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FLATMEM
|
||||
# define pfn_valid(pfn) (((pfn) < max_mapnr) && ia64_pfn_valid(pfn))
|
||||
# define page_to_pfn(page) ((unsigned long) (page - mem_map))
|
||||
# define pfn_to_page(pfn) (mem_map + (pfn))
|
||||
#elif defined(CONFIG_DISCONTIGMEM)
|
||||
extern struct page *vmem_map;
|
||||
extern unsigned long min_low_pfn;
|
||||
extern unsigned long max_low_pfn;
|
||||
# define pfn_valid(pfn) (((pfn) >= min_low_pfn) && ((pfn) < max_low_pfn) && ia64_pfn_valid(pfn))
|
||||
# define page_to_pfn(page) ((unsigned long) (page - vmem_map))
|
||||
# define pfn_to_page(pfn) (vmem_map + (pfn))
|
||||
#endif
|
||||
|
||||
#define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT)
|
||||
|
|
Loading…
Reference in New Issue