Re: [lm-sensors] [PATCH] x86/hwmon: fix module init for hotplug-but-no-device-foundcase

From: Chen Gong
Date: Tue Sep 14 2010 - 02:30:31 EST


ä 9/13/2010 6:05 PM, Jan Beulich åé:
In commit 0dca94baeab4a1a514841b0a4c8e3a51dfb4d5ae the call to
platform_driver_unregister() was made conditional upon !HOTPLUG_CPU,
but the return value from coretemp_init() was left to indicate an
error. This isn't correct, as the negative return value indicates to
the module loader that initialization failed, which isn't intended

only !HOTPLUG_CPU can remove the driver. That is what we need to do because under the hotplug condition, we need to consider those "offline"
cpus. I don't understand what you are afraid. Can you give me a scinario ?

here and results in dangling pointers.

Signed-off-by: Jan Beulich<jbeulich@xxxxxxxxxx>
Cc: Chen Gong<gong.chen@xxxxxxxxxxxxxxx>

---
drivers/hwmon/coretemp.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

--- linux-2.6.36-rc4/drivers/hwmon/coretemp.c 2010-09-13 08:45:02.000000000 +0200
+++ 2.6.36-rc4-x86-coretemp-hotplug-init-return/drivers/hwmon/coretemp.c 2010-09-03 17:54:14.000000000 +0200
@@ -541,16 +541,19 @@ static int __init coretemp_init(void)
" has no thermal sensor.\n", c->x86_model);
}
}
+
+#ifndef CONFIG_HOTPLUG_CPU
if (list_empty(&pdev_list)) {
err = -ENODEV;
goto exit_driver_unreg;
}
+#endif

register_hotcpu_notifier(&coretemp_cpu_notifier);
return 0;

-exit_driver_unreg:
#ifndef CONFIG_HOTPLUG_CPU
+exit_driver_unreg:
platform_driver_unregister(&coretemp_driver);
#endif
exit:




--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/