diff options
Diffstat (limited to 'drivers/base/node.c')
-rw-r--r-- | drivers/base/node.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c index c80c3aeed004..cbd0f62b4870 100644 --- a/drivers/base/node.c +++ b/drivers/base/node.c | |||
@@ -190,6 +190,31 @@ void unregister_node(struct node *node) | |||
190 | sysdev_unregister(&node->sysdev); | 190 | sysdev_unregister(&node->sysdev); |
191 | } | 191 | } |
192 | 192 | ||
193 | struct node node_devices[MAX_NUMNODES]; | ||
194 | |||
195 | int register_one_node(int nid) | ||
196 | { | ||
197 | int error = 0; | ||
198 | |||
199 | if (node_online(nid)) { | ||
200 | int p_node = parent_node(nid); | ||
201 | struct node *parent = NULL; | ||
202 | |||
203 | if (p_node != nid) | ||
204 | parent = &node_devices[p_node]; | ||
205 | |||
206 | error = register_node(&node_devices[nid], nid, parent); | ||
207 | } | ||
208 | |||
209 | return error; | ||
210 | |||
211 | } | ||
212 | |||
213 | void unregister_one_node(int nid) | ||
214 | { | ||
215 | unregister_node(&node_devices[nid]); | ||
216 | } | ||
217 | |||
193 | static int __init register_node_type(void) | 218 | static int __init register_node_type(void) |
194 | { | 219 | { |
195 | return sysdev_class_register(&node_class); | 220 | return sysdev_class_register(&node_class); |