Message ID | 1405265431-4561-3-git-send-email-linux@roeck-us.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Sun, Jul 13, 2014 at 04:30:26PM +0100, Guenter Roeck wrote: > diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c > index 43b7c34..b2da6d5 100644 > --- a/arch/arm64/kernel/process.c > +++ b/arch/arm64/kernel/process.c > @@ -174,6 +174,8 @@ void machine_restart(char *cmd) > /* Now call the architecture specific reboot code. */ > if (arm_pm_restart) > arm_pm_restart(reboot_mode, cmd); > + else > + kernel_restart_notify(cmd); There are couple of drivers specific to arm64, once they are converted we can get rid of arm_pm_restart entirely here.
On 07/14/2014 07:55 AM, Catalin Marinas wrote: > On Sun, Jul 13, 2014 at 04:30:26PM +0100, Guenter Roeck wrote: >> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c >> index 43b7c34..b2da6d5 100644 >> --- a/arch/arm64/kernel/process.c >> +++ b/arch/arm64/kernel/process.c >> @@ -174,6 +174,8 @@ void machine_restart(char *cmd) >> /* Now call the architecture specific reboot code. */ >> if (arm_pm_restart) >> arm_pm_restart(reboot_mode, cmd); >> + else >> + kernel_restart_notify(cmd); > > There are couple of drivers specific to arm64, once they are converted > we can get rid of arm_pm_restart entirely here. > I thought you wanted to keep exporting arm_pm_restart. That logically implies that you want to have the ability to write new drivers which use it, which in turn implies that converting existing drivers would not make much sense. Am I missing something ? Guenter
On Mon, Jul 14, 2014 at 04:01:14PM +0100, Guenter Roeck wrote: > On 07/14/2014 07:55 AM, Catalin Marinas wrote: > > On Sun, Jul 13, 2014 at 04:30:26PM +0100, Guenter Roeck wrote: > >> diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c > >> index 43b7c34..b2da6d5 100644 > >> --- a/arch/arm64/kernel/process.c > >> +++ b/arch/arm64/kernel/process.c > >> @@ -174,6 +174,8 @@ void machine_restart(char *cmd) > >> /* Now call the architecture specific reboot code. */ > >> if (arm_pm_restart) > >> arm_pm_restart(reboot_mode, cmd); > >> + else > >> + kernel_restart_notify(cmd); > > > > There are couple of drivers specific to arm64, once they are converted > > we can get rid of arm_pm_restart entirely here. > > I thought you wanted to keep exporting arm_pm_restart. No, I just thought you don't want the restart mechanism implemented in modules but the notifier registration still allows that, so I didn't fully get the reasoning. But I agree on the race aspect. > That logically implies > that you want to have the ability to write new drivers which use it, which > in turn implies that converting existing drivers would not make much sense. If the new handler registration mechanism gives the functionality, I don't see why we should keep arm_pm_restart around (for arm64 it's easier since there aren't many drivers setting it).
diff --git a/arch/arm64/kernel/process.c b/arch/arm64/kernel/process.c index 43b7c34..b2da6d5 100644 --- a/arch/arm64/kernel/process.c +++ b/arch/arm64/kernel/process.c @@ -174,6 +174,8 @@ void machine_restart(char *cmd) /* Now call the architecture specific reboot code. */ if (arm_pm_restart) arm_pm_restart(reboot_mode, cmd); + else + kernel_restart_notify(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> --- v4: No change. v3: Use wrapper function to execute notifier call chain. v2: Only call notifier call chain if arm_pm_restart is not set. Do not include linux/watchdog.h. arch/arm64/kernel/process.c | 2 ++ 1 file changed, 2 insertions(+)