From 49d04b7b9faf3397565bba71fc985301cd743d02 Mon Sep 17 00:00:00 2001 From: Alexander Holler Date: Thu, 3 May 2012 15:44:27 +1000 Subject: [PATCH] leds: heartbeat: stop on shutdown A halted kernel should not show a heartbeat. Signed-off-by: Alexander Holler Cc: Shuah Khan Cc: Richard Purdie Signed-off-by: Andrew Morton --- drivers/leds/ledtrig-heartbeat.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c index 1aacf4c6c3e4..8ec5fecf577f 100644 --- a/drivers/leds/ledtrig-heartbeat.c +++ b/drivers/leds/ledtrig-heartbeat.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "leds.h" struct heartbeat_trig_data { @@ -103,13 +104,28 @@ static struct led_trigger heartbeat_led_trigger = { .deactivate = heartbeat_trig_deactivate, }; +static int heartbeat_reboot_notifier(struct notifier_block *nb, + unsigned long code, void *unused) +{ + led_trigger_unregister(&heartbeat_led_trigger); + return NOTIFY_DONE; +} + +static struct notifier_block heartbeat_reboot_nb = { + .notifier_call = heartbeat_reboot_notifier, +}; + static int __init heartbeat_trig_init(void) { - return led_trigger_register(&heartbeat_led_trigger); + int rc = led_trigger_register(&heartbeat_led_trigger); + if( ! rc ) + register_reboot_notifier(&heartbeat_reboot_nb); + return rc; } static void __exit heartbeat_trig_exit(void) { + unregister_reboot_notifier(&heartbeat_reboot_nb); led_trigger_unregister(&heartbeat_led_trigger); } -- 2.39.5