Messages in this thread | | | Date | Sat, 4 Aug 2012 10:52:36 +0200 | From | Jean Delvare <> | Subject | Re: [PATCH 4/4 V2] Use get_online_cpus to avoid races involving CPU hotplug |
| |
On Fri, 3 Aug 2012 12:36:39 -0700, Silas Boyd-Wickizer wrote: > coretemp_init in drivers/hwmon/coretemp.c loops with > for_each_online_cpu, adding platform_devices and sysfs interfaces, > then calls register_hotcpu_notifier. There is a race if a CPU is > offlined or onlined after the loop, but before > register_hotcpu_notifier. The race might result in the absence of a > platform_device+sysfs interface for an online CPU, or the presence of > a platform_device+sysfs interface for an offline CPU. A similar race > occurs during coretemp_exit, after the module calls > unregister_hotcpu_notifier, but before it unregisters all devices, a > CPU might offline and a device for an offline CPU will exist for a > short while. > > This fix surrounds for_each_online_cpu and register_hotcpu_notifier > with get_online_cpus+put_online_cpus; and surrounds > unregister_hotcpu_notifier and device unregistering with > get_online_cpus+put_online_cpus. > > Build tested. > > Signed-off-by: Silas Boyd-Wickizer <sbw@mit.edu> > --- > drivers/hwmon/coretemp.c | 5 +++++ > 1 file changed, 5 insertions(+) > (...)
Applied, thanks.
-- Jean Delvare
| |