Re: [PATCH v2] softdog: Add options 'soft_reboot_target' and 'soft_active_on_boot'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Guenter,

> The code should include an explanation for the need for the double
> indirection (ie why schedule another worker instead of calling
> kthread_run directly). Also, there should be a comment explaining
> how it works, especially if kthread_run() fails to run a thread,
> and why kthread_run() is needed in the first place.

No problem, I am adding this to the next version.

> This isn't really a "reboot target". It is just a string passed
> to kernel_restart(). For the most part that string doesn't really
> do anything useful. What is it supposed to accomplish in your case,
> other than causing a reboot with the configured reboot_mode
> (which is a global variable) ?
>
> If the underlying idea is to cause an orderly restart following
> reboot_mode, a boolean would accomplish pretty much the same.
>
> Am I missing something ?

This argument is next sent to registered reboot notifiers and machine_restart,
according to implementation of 'kernel_restart'. So for platforms which
implemented different handlers for each 'cmd', the timeout can be handled with
desired behavior. For example, some platforms might want to reboot to rescue
mode when timeout.

 void kernel_restart(char *cmd)
   kernel_restart_prepare(cmd);
     -> blocking_notifier_call_chain(&reboot_notifier_list, SYS_RESTART, cmd);
   ...
   machine_restart(cmd);

Btw, according to the signature of kernel_restart, I should name this argument
'soft_reboot_cmd', instead of '*_target'. Sorry for causing the confusion.

> > +     if (soft_active_on_boot) {
> > +             set_bit(WDOG_HW_RUNNING, &softdog_dev.status);
> > +             set_bit(WDOG_ACTIVE, &softdog_dev.status);
> > +     }
>
> Strictly speaking you should call the ping function here to start the timer.
> Otherwise the watchdog won't really start if watchdog_register_device()
> fails.

Thanks for catching this, I will revise this in the next version.

Woody



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux