diff options
author | Yasunori Goto <y-goto@jp.fujitsu.com> | 2006-06-27 02:53:38 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-27 17:32:36 -0700 |
commit | 0fc44159bfcb5b0afa178f9c3f50db23aebc76ff (patch) | |
tree | d87e47c0f5e6b2eff1d9113d3495d185924734d9 /include | |
parent | 1f04bbd2d396a701c5af2e5b92bad896c2550c16 (diff) | |
download | op-kernel-dev-0fc44159bfcb5b0afa178f9c3f50db23aebc76ff.zip op-kernel-dev-0fc44159bfcb5b0afa178f9c3f50db23aebc76ff.tar.gz |
[PATCH] Register sysfs file for hotplugged new node
When new node becomes enable by hot-add, new sysfs file must be created for
new node. So, if new node is enabled by add_memory(), register_one_node() is
called to create it. In addition, I386's arch_register_node() and a part of
register_nodes() of powerpc are consolidated to register_one_node() as a
generic_code().
This is tested by Tiger4(IPF) with node hot-plug emulation.
Signed-off-by: Keiichiro Tokunaga <tokuanga.keiich@jp.fujitsu.com>
Signed-off-by: Yasunori Goto <y-goto@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-i386/cpu.h | 2 | ||||
-rw-r--r-- | include/asm-i386/node.h | 29 | ||||
-rw-r--r-- | include/linux/node.h | 4 |
3 files changed, 4 insertions, 31 deletions
diff --git a/include/asm-i386/cpu.h b/include/asm-i386/cpu.h index e7252c2..b1bc7b1 100644 --- a/include/asm-i386/cpu.h +++ b/include/asm-i386/cpu.h @@ -7,8 +7,6 @@ #include <linux/nodemask.h> #include <linux/percpu.h> -#include <asm/node.h> - struct i386_cpu { struct cpu cpu; }; diff --git a/include/asm-i386/node.h b/include/asm-i386/node.h deleted file mode 100644 index e13c6ff..0000000 --- a/include/asm-i386/node.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef _ASM_I386_NODE_H_ -#define _ASM_I386_NODE_H_ - -#include <linux/device.h> -#include <linux/mmzone.h> -#include <linux/node.h> -#include <linux/topology.h> -#include <linux/nodemask.h> - -struct i386_node { - struct node node; -}; -extern struct i386_node node_devices[MAX_NUMNODES]; - -static inline int arch_register_node(int num){ - int p_node; - struct node *parent = NULL; - - if (!node_online(num)) - return 0; - p_node = parent_node(num); - - if (p_node != num) - parent = &node_devices[p_node].node; - - return register_node(&node_devices[num].node, num, parent); -} - -#endif /* _ASM_I386_NODE_H_ */ diff --git a/include/linux/node.h b/include/linux/node.h index 254dc3d..1e53475 100644 --- a/include/linux/node.h +++ b/include/linux/node.h @@ -26,8 +26,12 @@ struct node { struct sys_device sysdev; }; +extern struct node node_devices[]; + extern int register_node(struct node *, int, struct node *); extern void unregister_node(struct node *node); +extern int register_one_node(int nid); +extern void unregister_one_node(int nid); #define to_node(sys_device) container_of(sys_device, struct node, sysdev) |