Messages in this thread Patch in this message | | | Date | Wed, 29 Jan 2003 10:19:41 -0800 | From | Matthew Dobson <> | Subject | Re: [patch][trivial] fix drivers/base/cpu.c |
| |
William Lee Irwin III wrote: > In message <3E2F2EC1.4090606@us.ibm.com> Matt Dobson (?) wrote: > >>>Both drivers/base/node.c & memblk.c check the return values of the >>>devclass_register & driver_register calls. cpu.c doesn't. This little >>>patch remedies that omission. >> > > On Wed, Jan 29, 2003 at 03:51:04PM +1100, Rusty Russell wrote: > >>You'd want to to undo the devclass_register() on failure, too, I >>imagine. > > > Ow, I forgot about that. Someone grind this out quick and take care of > the other oopsing thingies. You know what I'm preoccupied with. > > -- wli
Good point Rusty, cleanup attatched...
Cheers!
-Matt diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.59-vanilla/drivers/base/cpu.c linux-2.5.59-driver_base_cleanup/drivers/base/cpu.c --- linux-2.5.59-vanilla/drivers/base/cpu.c Thu Jan 16 18:21:51 2003 +++ linux-2.5.59-driver_base_cleanup/drivers/base/cpu.c Wed Jan 29 10:16:26 2003 @@ -48,7 +48,10 @@ static int __init register_cpu_type(void) { - devclass_register(&cpu_devclass); - return driver_register(&cpu_driver); + int error; + if (!(error = devclass_register(&cpu_devclass))) + if (error = driver_register(&cpu_driver)) + devclass_unregister(&cpu_devclass); + return error; } postcore_initcall(register_cpu_type); diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.59-vanilla/drivers/base/memblk.c linux-2.5.59-driver_base_cleanup/drivers/base/memblk.c --- linux-2.5.59-vanilla/drivers/base/memblk.c Thu Jan 16 18:22:57 2003 +++ linux-2.5.59-driver_base_cleanup/drivers/base/memblk.c Wed Jan 29 10:16:08 2003 @@ -49,7 +49,10 @@ static int __init register_memblk_type(void) { - int error = devclass_register(&memblk_devclass); - return error ? error : driver_register(&memblk_driver); + int error; + if (!(error = devclass_register(&memblk_devclass))) + if (error = driver_register(&memblk_driver)) + devclass_unregister(&memblk_devclass); + return error; } postcore_initcall(register_memblk_type); diff -Nur --exclude-from=/usr/src/.dontdiff linux-2.5.59-vanilla/drivers/base/node.c linux-2.5.59-driver_base_cleanup/drivers/base/node.c --- linux-2.5.59-vanilla/drivers/base/node.c Thu Jan 16 18:21:40 2003 +++ linux-2.5.59-driver_base_cleanup/drivers/base/node.c Wed Jan 29 10:15:12 2003 @@ -91,7 +91,10 @@ static 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); | |