Patch "Revert "leds: handle suspend/resume in heartbeat trigger"" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
Revert "leds: handle suspend/resume in heartbeat trigger"
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
revert-leds-handle-suspend-resume-in-heartbeat-trigger.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
436c4c45b5b9562b59cedbb51b7343ab4a6dd8ccMon Sep 17 00:00:00 2001
From: Zhang Bo <[email protected]>
Date: Tue, 13 Jun 2017 10:39:20 +0800
Subject: Revert "leds: handle suspend/resume in heartbeat trigger"
From: Zhang Bo <[email protected]>
commit 436c4c45b5b9562b59cedbb51b7343ab4a6dd8cc upstream.
This reverts commit 5ab92a7cb82c66bf30685583a38a18538e3807db.
System cannot enter suspend mode because of heartbeat led trigger. In autosleep_wq, try_to_suspend function will try to enter suspend mode in specific period. it will get wakeup_count then call pm_notifier chain callback function and freeze processes. Heartbeat_pm_notifier is called and it call led_trigger_unregister to change the trigger of led device to none. It will send uevent message and the wakeup source count changed. As wakeup_count changed, suspend will abort.
--- drivers/leds/trigger/ledtrig-heartbeat.c | 31 ------------------------------- 1 file changed, 31 deletions(-)
drivers/leds/trigger/ledtrig-heartbeat.c +0 -31
@@ -19,7 +19,6 @@#include <linux/sched.h> #include <linux/leds.h> #include <linux/reboot.h> -#include <linux/suspend.h> #include "../leds.h" static int panic_heartbeats;
@@ -155,30 +154,6 @@ static struct led_trigger heartbeat_led_ .deactivate = heartbeat_trig_deactivate, }; -static int heartbeat_pm_notifier (struct notifier_block *nb, -unsigned long pm_event,void *unused) -{ -int rc; - -switch (pm_event) { -case PM_SUSPEND_PREPARE : -case PM_HIBERNATION_PREPARE : -case PM_RESTORE_PREPARE : -led_trigger_unregister (&heartbeat_led_trigger); -break ; -case PM_POST_SUSPEND : -case PM_POST_HIBERNATION : -case PM_POST_RESTORE : - rc =led_trigger_register (&heartbeat_led_trigger); -if (rc) -pr_err ("could not re-register heartbeat trigger\n" ); -break ; -default : -break ; - } -return NOTIFY_DONE ; -} -static int heartbeat_reboot_notifier (struct notifier_block *nb,unsigned long code,void *unused) {
@@ -193,10 +168,6 @@ static int heartbeat_panic_notifier(strureturn NOTIFY_DONE ; } -static struct notifier_block heartbeat_pm_nb = { - .notifier_call = heartbeat_pm_notifier, -}; -static struct notifier_block heartbeat_reboot_nb = { .notifier_call = heartbeat_reboot_notifier, };
@@ -213,14 +184,12 @@ static int __init heartbeat_trig_init(voatomic_notifier_chain_register (&panic_notifier_list, &heartbeat_panic_nb);register_reboot_notifier (&heartbeat_reboot_nb); -register_pm_notifier (&heartbeat_pm_nb); }return rc; } static void __exit heartbeat_trig_exit(void) { -unregister_pm_notifier (&heartbeat_pm_nb);unregister_reboot_notifier (&heartbeat_reboot_nb);atomic_notifier_chain_unregister (&panic_notifier_list, &heartbeat_panic_nb);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/revert-leds-handle-suspend-resume-in-heartbeat-trigger.patch