diff options
Diffstat (limited to 'drivers/hwmon/coretemp.c')
-rw-r--r-- | drivers/hwmon/coretemp.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c index 3ac4c03ba77b..c13a4fd86b3c 100644 --- a/drivers/hwmon/coretemp.c +++ b/drivers/hwmon/coretemp.c | |||
@@ -605,6 +605,13 @@ static int coretemp_cpu_online(unsigned int cpu) | |||
605 | struct platform_data *pdata; | 605 | struct platform_data *pdata; |
606 | 606 | ||
607 | /* | 607 | /* |
608 | * Don't execute this on resume as the offline callback did | ||
609 | * not get executed on suspend. | ||
610 | */ | ||
611 | if (cpuhp_tasks_frozen) | ||
612 | return 0; | ||
613 | |||
614 | /* | ||
608 | * CPUID.06H.EAX[0] indicates whether the CPU has thermal | 615 | * CPUID.06H.EAX[0] indicates whether the CPU has thermal |
609 | * sensors. We check this bit only, all the early CPUs | 616 | * sensors. We check this bit only, all the early CPUs |
610 | * without thermal sensors will be filtered out. | 617 | * without thermal sensors will be filtered out. |
@@ -654,6 +661,13 @@ static int coretemp_cpu_offline(unsigned int cpu) | |||
654 | struct temp_data *tdata; | 661 | struct temp_data *tdata; |
655 | int indx, target; | 662 | int indx, target; |
656 | 663 | ||
664 | /* | ||
665 | * Don't execute this on suspend as the device remove locks | ||
666 | * up the machine. | ||
667 | */ | ||
668 | if (cpuhp_tasks_frozen) | ||
669 | return 0; | ||
670 | |||
657 | /* If the physical CPU device does not exist, just return */ | 671 | /* If the physical CPU device does not exist, just return */ |
658 | if (!pdev) | 672 | if (!pdev) |
659 | return 0; | 673 | return 0; |