diff options
| author | Patrick Mochel <mochel@osdl.org> | 2003-03-25 03:14:01 -0600 |
|---|---|---|
| committer | Patrick Mochel <mochel@osdl.org> | 2003-03-25 03:14:01 -0600 |
| commit | f7bb3f9b74e8f045ff8d33d4a0c2363360d4c6a4 (patch) | |
| tree | 280afb9ca2bafa17b0347744c8534a40775d558b /drivers/base/node.c | |
| parent | ec451dbbac134cf7a179a69e9c96bc5f10d5805e (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.c | 9 |
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); |
