diff options
author | Andy Whitcroft <apw@shadowen.org> | 2006-01-06 03:10:54 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 11:33:24 -0500 |
commit | 161599ff39a3c3cdea0a1be05ac53accd2c45cdd (patch) | |
tree | 9943c93c97dcf042f5ec7c5fab011be655d8212a | |
parent | 2bdaf115b1c364d89484b59d5b937973f1c5a5c3 (diff) |
[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>
-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) | |||
596 | * this restriction. | 596 | * this restriction. |
597 | */ | 597 | */ |
598 | #ifdef CONFIG_NUMA | 598 | #ifdef CONFIG_NUMA |
599 | #define pfn_to_nid early_pfn_to_nid | 599 | #define pfn_to_nid(pfn) \ |
600 | ({ \ | ||
601 | unsigned long __pfn_to_nid_pfn = (pfn); \ | ||
602 | page_to_nid(pfn_to_page(__pfn_to_nid_pfn)); \ | ||
603 | }) | ||
600 | #else | 604 | #else |
601 | #define pfn_to_nid(pfn) (0) | 605 | #define pfn_to_nid(pfn) (0) |
602 | #endif | 606 | #endif |