summaryrefslogtreecommitdiff
path: root/drivers/base/node.c
diff options
context:
space:
mode:
authorPatrick Mochel <mochel@osdl.org>2003-03-25 03:14:01 -0600
committerPatrick Mochel <mochel@osdl.org>2003-03-25 03:14:01 -0600
commitf7bb3f9b74e8f045ff8d33d4a0c2363360d4c6a4 (patch)
tree280afb9ca2bafa17b0347744c8534a40775d558b /drivers/base/node.c
parentec451dbbac134cf7a179a69e9c96bc5f10d5805e (diff)
driver model: Fix error handling in sysfs registration
From Matt Dobson: The cpu, memblk, and node driver/device registration should be a little more clean in the way it handles registration failures. Or at least *consistent* amongst the topology elements. Right now, failures are either silent, obscure, or leave things in an inconsistent state.
Diffstat (limited to 'drivers/base/node.c')
-rw-r--r--drivers/base/node.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 261bf881da60..cfcf117018dc 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -89,9 +89,12 @@ int __init register_node(struct node *node, int num, struct node *parent)
}
-static int __init register_node_type(void)
+int __init register_node_type(void)
{
- int error = devclass_register(&node_devclass);
- return error ? error : driver_register(&node_driver);
+ int error;
+ if (!(error = devclass_register(&node_devclass)))
+ if (error = driver_register(&node_driver))
+ devclass_unregister(&node_devclass);
+ return error;
}
postcore_initcall(register_node_type);