On Wed, 24 Aug 2011, Borislav Petkov wrote: > On Wed, Aug 24, 2011 at 05:10:52PM +0200, Julia Lawall wrote: > > From: Julia Lawall <julia@xxxxxxx> > > > > Call platform_device_unregister as in the previous error-handling code. > > > > Signed-off-by: Julia Lawall <julia@xxxxxxx> > > > > --- > > This is not tested, but I couldn't see how else platform_device_unregister > > could be called. > > > > arch/x86/kernel/microcode_core.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c > > index f924280..1872a3a 100644 > > --- a/arch/x86/kernel/microcode_core.c > > +++ b/arch/x86/kernel/microcode_core.c > > @@ -532,8 +532,10 @@ static int __init microcode_init(void) > > } > > > > error = microcode_dev_init(); > > - if (error) > > + if (error) { > > + platform_device_unregister(microcode_pdev); > > return error; > > + } > > > > register_syscore_ops(&mc_syscore_ops); > > register_hotcpu_notifier(&mc_cpu_notifier); > > I guess the most sensible thing to do here is to convert this to the > classic goto with labels kernel style: > > ... > error = sysdev_driver_register(..); > mutex_unlock(µcode_mutex); > put_online_cpus(); > if (error) > goto err_sysdev; > > error = microcode_dev_init(); > if (error) > goto err_dev; > > ... > > err_dev: > get_online_cpus(); > mutex_lock(µcode_mutex); > > sysdev_driver_unregister(&cpu_sysdev_class, &mc_sysdev_driver); > > mutex_unlock(µcode_mutex); > put_online_cpus(); > > > err_sysdev: > platform_device_unregister(microcode_pdev); > > out: > return err; > > or something to that effect. That seems like a fairly big change. Is it desirable to move the calls to sysdev_driver_register and microcode_dev_init up over the get_online_cpus ... put_online_cpus sequence? julia -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html