Message ID | 1404689900-27421-3-git-send-email-linux@roeck-us.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sun, 6 Jul 2014 16:38:15 -0700 Guenter Roeck <linux@roeck-us.net> wrote: > The kernel core now supports a notifier call chain to restart > the system. Call it if arm_pm_restart is not set. > > ... > > --- a/arch/arm64/kernel/process.c > +++ b/arch/arm64/kernel/process.c > @@ -174,6 +174,9 @@ void machine_restart(char *cmd) > /* Now call the architecture specific reboot code. */ > if (arm_pm_restart) > arm_pm_restart(reboot_mode, cmd); > + else > + blocking_notifier_call_chain(&restart_notifier_list, > + reboot_mode, cmd); It would be a bit neater to have a helper function to perform the call, rather than directly accessing the notifier list. Apart from anything else, this hides the fact that the core code (presently!) uses the blocking_ style notifiers.
On 07/07/2014 02:16 PM, Andrew Morton wrote: > On Sun, 6 Jul 2014 16:38:15 -0700 Guenter Roeck <linux@roeck-us.net> wrote: > >> The kernel core now supports a notifier call chain to restart >> the system. Call it if arm_pm_restart is not set. >> >> ... >> >> --- a/arch/arm64/kernel/process.c >> +++ b/arch/arm64/kernel/process.c >> @@ -174,6 +174,9 @@ void machine_restart(char *cmd) >> /* Now call the architecture specific reboot code. */ >> if (arm_pm_restart) >> arm_pm_restart(reboot_mode, cmd); >> + else >> + blocking_notifier_call_chain(&restart_notifier_list, >> + reboot_mode, cmd); > > It would be a bit neater to have a helper function to perform the call, > rather than directly accessing the notifier list. Apart from anything > else, this hides the fact that the core code (presently!) uses the > blocking_ style notifiers. > Introduced kernel_restart_notify (proposals for better names welcome). As a side effect, moved restart_notifier_list into kernel/reboot.c and made it static. Thanks, Guenter
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 43b7c34..585ebe2 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -174,6 +174,9 @@ void machine_restart(char *cmd) /* Now call the architecture specific reboot code. */ if (arm_pm_restart) arm_pm_restart(reboot_mode, cmd); + else + blocking_notifier_call_chain(&restart_notifier_list, + reboot_mode, cmd); /* * Whoops - the architecture was unable to reboot.
The kernel core now supports a notifier call chain to restart the system. Call it if arm_pm_restart is not set. Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- v2: Only call notifier call chain if arm_pm_restart is not set Do not include linux/watchdog.h arch/arm64/kernel/process.c | 3 +++ 1 file changed, 3 insertions(+)