diff options
author | Andy Whitcroft <apw@shadowen.org> | 2006-01-06 00:10:54 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 08:33:24 -0800 |
commit | 161599ff39a3c3cdea0a1be05ac53accd2c45cdd (patch) | |
tree | 9943c93c97dcf042f5ec7c5fab011be655d8212a /include/linux/mmzone.h | |
parent | 2bdaf115b1c364d89484b59d5b937973f1c5a5c3 (diff) | |
download | lwn-161599ff39a3c3cdea0a1be05ac53accd2c45cdd.tar.gz lwn-161599ff39a3c3cdea0a1be05ac53accd2c45cdd.zip |
[PATCH] sparsemem: provide pfn_to_nid
Before SPARSEMEM is initialised we cannot provide an efficient pfn_to_nid()
implmentation; before initialisation is complete we use early_pfn_to_nid()
to provide location information. Until recently there was no non-init user
of this functionality. Provide a post init pfn_to_nid() implementation.
Note that this implmentation assumes that the pfn passed has been validated
with pfn_valid(). The current single user of this function already has
this check.
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/mmzone.h')
-rw-r--r-- | include/linux/mmzone.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index ee9f7b74e613..8cba76c6a28c 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -596,7 +596,11 @@ static inline int pfn_valid(unsigned long pfn) * this restriction. */ #ifdef CONFIG_NUMA -#define pfn_to_nid early_pfn_to_nid +#define pfn_to_nid(pfn) \ +({ \ + unsigned long __pfn_to_nid_pfn = (pfn); \ + page_to_nid(pfn_to_page(__pfn_to_nid_pfn)); \ +}) #else #define pfn_to_nid(pfn) (0) #endif |