Re: [PATCH 4/4 V2] Use get_online_cpus to avoid races involving CPU hotplug

From: Jean Delvare
Date: Sat Aug 04 2012 - 04:52:38 EST


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@xxxxxxx>
> ---
> drivers/hwmon/coretemp.c | 5 +++++
> 1 file changed, 5 insertions(+)
> (...)

Applied, thanks.

--
Jean Delvare
--
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/