Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 24 Aug 2011 17:44:08 +0200 (CEST) | From | Julia Lawall <> | Subject | Re: [PATCH] arch/x86/kernel/microcode_core.c: add missing platform_device_unregister |
| |
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@diku.dk> > > > > Call platform_device_unregister as in the previous error-handling code. > > > > Signed-off-by: Julia Lawall <julia@diku.dk> > > > > --- > > 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
| ![\](/images/icornerr.gif) |