diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-03-19 12:20:24 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-03-19 12:20:24 -0400 |
commit | be093beb608edf821b45fe00a8a080fb5c6ed4af (patch) | |
tree | 05751248a909761dab9ccb29fd08bf2c5683ef0d /arch/arm/kernel/process.c | |
parent | 14b6848bc0134b8838d374c423df3edda9b1490e (diff) |
[ARM] pass reboot command line to arch_reset()
OMAP wishes to pass state to the boot loader upon reboot in order to
instruct it whether to wait for USB-based reflashing or not. There is
already a facility to do this via the reboot() syscall, except we ignore
the string passed to machine_restart().
This patch fixes things to pass this string to arch_reset(). This means
that we keep the reboot mode limited to telling the kernel _how_ to
perform the reboot which should be independent of what we request the
boot loader to do.
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/process.c')
-rw-r--r-- | arch/arm/kernel/process.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index af377c73d90b..2de14e2afdc5 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -83,7 +83,7 @@ static int __init hlt_setup(char *__unused) | |||
83 | __setup("nohlt", nohlt_setup); | 83 | __setup("nohlt", nohlt_setup); |
84 | __setup("hlt", hlt_setup); | 84 | __setup("hlt", hlt_setup); |
85 | 85 | ||
86 | void arm_machine_restart(char mode) | 86 | void arm_machine_restart(char mode, const char *cmd) |
87 | { | 87 | { |
88 | /* | 88 | /* |
89 | * Clean and disable cache, and turn off interrupts | 89 | * Clean and disable cache, and turn off interrupts |
@@ -100,7 +100,7 @@ void arm_machine_restart(char mode) | |||
100 | /* | 100 | /* |
101 | * Now call the architecture specific reboot code. | 101 | * Now call the architecture specific reboot code. |
102 | */ | 102 | */ |
103 | arch_reset(mode); | 103 | arch_reset(mode, cmd); |
104 | 104 | ||
105 | /* | 105 | /* |
106 | * Whoops - the architecture was unable to reboot. | 106 | * Whoops - the architecture was unable to reboot. |
@@ -120,7 +120,7 @@ EXPORT_SYMBOL(pm_idle); | |||
120 | void (*pm_power_off)(void); | 120 | void (*pm_power_off)(void); |
121 | EXPORT_SYMBOL(pm_power_off); | 121 | EXPORT_SYMBOL(pm_power_off); |
122 | 122 | ||
123 | void (*arm_pm_restart)(char str) = arm_machine_restart; | 123 | void (*arm_pm_restart)(char str, const char *cmd) = arm_machine_restart; |
124 | EXPORT_SYMBOL_GPL(arm_pm_restart); | 124 | EXPORT_SYMBOL_GPL(arm_pm_restart); |
125 | 125 | ||
126 | 126 | ||
@@ -195,9 +195,9 @@ void machine_power_off(void) | |||
195 | pm_power_off(); | 195 | pm_power_off(); |
196 | } | 196 | } |
197 | 197 | ||
198 | void machine_restart(char * __unused) | 198 | void machine_restart(char *cmd) |
199 | { | 199 | { |
200 | arm_pm_restart(reboot_mode); | 200 | arm_pm_restart(reboot_mode, cmd); |
201 | } | 201 | } |
202 | 202 | ||
203 | void __show_regs(struct pt_regs *regs) | 203 | void __show_regs(struct pt_regs *regs) |