Re: [PATCH v2] leds: heartbeat: stop on shutdown

Alexander Holler
2012-04-24T17:27:22Z

Am 24.04.2012 19:00, schrieb Shuah Khan:
> On Tue, 2012-04-24 at 18:32 +0200, Alexander Holler wrote:
>> Am 24.04.2012 17:24, schrieb Shuah Khan:
>>> On Tue, 2012-04-24 at 17:07 +0200, Alexander Holler wrote:
>>>> A halted kernel should not show a heartbeat.
>>>>
>>>> Signed-off-by: Alexander Holler <holler@ahsoftware.de>
>>>> ---
>>>> drivers/leds/ledtrig-heartbeat.c | 18 +++++++++++++++++-
>>>> 1 files changed, 17 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c
>>>> index 759c0bb..1c05bd9 100644
>>>> --- a/drivers/leds/ledtrig-heartbeat.c
>>>> +++ b/drivers/leds/ledtrig-heartbeat.c
>>>> @@ -18,6 +18,7 @@
>>>> #include <linux/timer.h>
>>>> #include <linux/sched.h>
>>>> #include <linux/leds.h>
>>>> +#include <linux/reboot.h>
>>>> #include "leds.h"
>>>>
>>>> struct heartbeat_trig_data {
>>>> @@ -101,13 +102,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;
>>>> +}
> I am sorry I didn't catch this the last time. Do you need to call
> unregister here? Looks like trigger is going away with a registered
> reboot notifier. Might be fine, since reboot is going to happen.

That unregister is the whole reason of the patch because it disables all
running heartbeats on reboot/shutdown. ;)

I still wonder why the timers are running after a kernel halted (so the
heardbeat was still alive), but there might be a good reason not just to
disable all running timers unconditionally on shutdown.

Regards,

Alexander