diff options
| author | Yasunori Goto <y-goto@jp.fujitsu.com> | 2006-06-27 05:53:33 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-27 20:32:36 -0400 |
| commit | 10ad400b49aca15ecf83b0fde7e35e4064b15c85 (patch) | |
| tree | 336de747d6839add8ab3a7f70367e87ddbc7d155 /include/linux | |
| parent | 306d6cbe86e2e6603ac3162e1294d5c75cfdeca6 (diff) | |
[PATCH] pgdat allocation for new node add (refresh node_data[])
Refresh NODE_DATA() for generic archs. In this case, NODE_DATA(nid) ==
node_data[nid]. node_data[] is array of address of pgdat. So, refresh is
quite simple.
Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Dave Hansen <haveblue@us.ibm.com>
Cc: "Brown, Len" <len.brown@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/memory_hotplug.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index c6fd2c0323fc..569b1f6c27d1 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h | |||
| @@ -91,6 +91,9 @@ static inline pg_data_t *arch_alloc_nodedata(int nid) | |||
| 91 | static inline void arch_free_nodedata(pg_data_t *pgdat) | 91 | static inline void arch_free_nodedata(pg_data_t *pgdat) |
| 92 | { | 92 | { |
| 93 | } | 93 | } |
| 94 | static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat) | ||
| 95 | { | ||
| 96 | } | ||
| 94 | 97 | ||
| 95 | #else /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */ | 98 | #else /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */ |
| 96 | 99 | ||
| @@ -114,6 +117,12 @@ static inline void arch_free_nodedata(pg_data_t *pgdat) | |||
| 114 | */ | 117 | */ |
| 115 | #define generic_free_nodedata(pgdat) kfree(pgdat) | 118 | #define generic_free_nodedata(pgdat) kfree(pgdat) |
| 116 | 119 | ||
| 120 | extern pg_data_t *node_data[]; | ||
| 121 | static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat) | ||
| 122 | { | ||
| 123 | node_data[nid] = pgdat; | ||
| 124 | } | ||
| 125 | |||
| 117 | #else /* !CONFIG_NUMA */ | 126 | #else /* !CONFIG_NUMA */ |
| 118 | 127 | ||
| 119 | /* never called */ | 128 | /* never called */ |
| @@ -125,6 +134,9 @@ static inline pg_data_t *generic_alloc_nodedata(int nid) | |||
| 125 | static inline void generic_free_nodedata(pg_data_t *pgdat) | 134 | static inline void generic_free_nodedata(pg_data_t *pgdat) |
| 126 | { | 135 | { |
| 127 | } | 136 | } |
| 137 | static inline void arch_refresh_nodedata(int nid, pg_data_t *pgdat) | ||
| 138 | { | ||
| 139 | } | ||
| 128 | #endif /* CONFIG_NUMA */ | 140 | #endif /* CONFIG_NUMA */ |
| 129 | #endif /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */ | 141 | #endif /* CONFIG_HAVE_ARCH_NODEDATA_EXTENSION */ |
| 130 | 142 | ||
