Skip to contentSkip to conversation

pfn_to_nid

PATCH New Bob Picco 1 participant 1 message Jun 21, 2005

lore
Share & tools
lore

Bob Picco

author
#0 lore raw

PATCH 1/1 pfn_to_nid

Tony,

This didn't make it into -mm. So current -mm is broken for the same reason which previous -mm was broken. Below is the text from the original post.

Bjorn posted on IRC a problem building 2.6.12-rc6-mm1. pfn_to_nid is undefined. We haven't had this interface on ia64. The problem was introduced in a recent sys_mbind change. Bjorn has compiled, linked and booted the patch for me.

Oh, the paddr_to_nid call could fail when DISCONTIG+NUMA is configured because there isn't any ACPI SRAT NUMA information.

bob

Index: linux-2.6.12-rc6-mm1/include/asm-ia64/mmzone.h
=================================--- linux-2.6.12-rc6-mm1.orig/include/asm-ia64/mmzone.h 2005-06-07 13:36:51.000000000 -0400
+++ linux-2.6.12-rc6-mm1/include/asm-ia64/mmzone.h 2005-06-07 14:48:17.000000000 -0400
@@ -15,6 +15,20 @@
#include <asm/page.h>
#include <asm/meminit.h>

+static inline int pfn_to_nid(unsigned long pfn)
+{
+#ifdef CONFIG_NUMA
+ extern int paddr_to_nid(unsigned long);
+ int nid = paddr_to_nid(pfn << PAGE_SHIFT);
+ if (nid < 0)
+ return 0;
+ else
+ return nid;
+#else
+ return 0;
+#endif
+}
+
#ifdef CONFIG_DISCONTIGMEM

#ifdef CONFIG_IA64_DIG /* DIG systems are small */