linux/kernel/power
Dexuan Cui 2351f8d295 PM: hibernate: Freeze kernel threads in software_resume()
Currently the kernel threads are not frozen in software_resume(), so
between dpm_suspend_start(PMSG_QUIESCE) and resume_target_kernel(),
system_freezable_power_efficient_wq can still try to submit SCSI
commands and this can cause a panic since the low level SCSI driver
(e.g. hv_storvsc) has quiesced the SCSI adapter and can not accept
any SCSI commands: https://lkml.org/lkml/2020/4/10/47

At first I posted a fix (https://lkml.org/lkml/2020/4/21/1318) trying
to resolve the issue from hv_storvsc, but with the help of
Bart Van Assche, I realized it's better to fix software_resume(),
since this looks like a generic issue, not only pertaining to SCSI.

Cc: All applicable <stable@vger.kernel.org>
Signed-off-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2020-04-27 10:30:30 +02:00
..
autosleep.c PM / wakeup: Show wakeup sources stats in sysfs 2019-08-21 00:20:40 +02:00
console.c
energy_model.c sched/topology: Remove unused 'sd' parameter from arch_scale_cpu_capacity() 2019-06-24 19:23:39 +02:00
hibernate.c PM: hibernate: Freeze kernel threads in software_resume() 2020-04-27 10:30:30 +02:00
Kconfig PM: remove s390 specific callbacks 2020-03-23 13:41:55 +01:00
main.c PM: sleep: Add pm_debug_messages kernel command line option 2020-04-02 15:29:56 +02:00
Makefile PM: Introduce an Energy Model management framework 2018-12-11 15:16:58 +01:00
power.h y2038: syscalls: change remaining timeval to __kernel_old_timeval 2019-11-15 14:38:29 +01:00
poweroff.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 248 2019-06-19 17:09:08 +02:00
process.c
qos.c PM: QoS: annotate data races in pm_qos_*_value() 2020-03-03 23:34:51 +01:00
snapshot.c s390 updates for the 5.7 merge window 2020-04-04 09:45:50 -07:00
suspend_test.c PM: sleep: Switch to rtc_time64_to_tm()/rtc_tm_to_time64() 2019-12-20 09:58:08 +01:00
suspend.c ACPI: PM: s2idle: Avoid possible race related to the EC GPE 2020-02-11 10:11:02 +01:00
swap.c kernel: power: swap: use kzalloc() instead of kmalloc() followed by memset() 2019-06-28 10:20:39 +02:00
user.c PM / sleep: handle the compat case in snapshot_set_swap_area() 2020-04-06 21:42:36 +02:00
wakelock.c PM / wakeup: Show wakeup sources stats in sysfs 2019-08-21 00:20:40 +02:00