aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/mlx4/alias_GUID.c
diff options
context:
space:
mode:
authorSilas Boyd-Wickizer <[email protected]>2012-09-23 18:27:32 +0000
committerJean Delvare <[email protected]>2012-09-23 18:27:32 +0000
commit641f14560035bbb86500ea4b3a27ad27f034725b (patch)
treeacf190876e015304f959294c37b302e904380baa /drivers/infiniband/hw/mlx4/alias_GUID.c
parenthwmon: (via-cputemp) Use get_online_cpus to avoid races involving CPU hotplug (diff)
downloadkernel-641f14560035bbb86500ea4b3a27ad27f034725b.tar.gz
kernel-641f14560035bbb86500ea4b3a27ad27f034725b.zip
hwmon: (coretemp) Use get_online_cpus to avoid races involving CPU hotplug
coretemp_init 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 <[email protected]> Signed-off-by: Jean Delvare <[email protected]>
Diffstat (limited to 'drivers/infiniband/hw/mlx4/alias_GUID.c')
0 files changed, 0 insertions, 0 deletions