diff mbox

[-v10,09/11] arm, prepare reboot_mode for moving to generic kernel code.

Message ID 1368273447-11958-10-git-send-email-holt@sgi.com (mailing list archive)
State New, archived
Headers show

Commit Message

Robin Holt May 11, 2013, 11:57 a.m. UTC
This patch prepares for the moving the parsing of reboot= to the generic
kernel code by making reboot_mode into a more generic form.

Signed-off-by: Robin Holt <holt@sgi.com>
To: Andrew Morton <akpm@linux-foundation.org>
To: Russell King <linux@arm.linux.org.uk>
Cc: Russ Anderson <rja@sgi.com>
Cc: Robin Holt <holt@sgi.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: the arch/x86 maintainers <x86@kernel.org>
Cc: Arm Mailing List <linux-arm-kernel@lists.infradead.org>

---

Changes since -v8
 - Switched from using REBOOT_WARM/COLD to HARD/SOFT.
---
 arch/arm/include/asm/mach/arch.h   | 3 ++-
 arch/arm/kernel/process.c          | 8 ++++----
 arch/arm/kernel/setup.c            | 6 +++---
 arch/arm/mach-footbridge/cats-hw.c | 2 +-
 4 files changed, 10 insertions(+), 9 deletions(-)

Comments

Russell King - ARM Linux May 11, 2013, 1:04 p.m. UTC | #1
On Sat, May 11, 2013 at 06:57:25AM -0500, Robin Holt wrote:
> This patch prepares for the moving the parsing of reboot= to the generic
> kernel code by making reboot_mode into a more generic form.
> 
> Signed-off-by: Robin Holt <holt@sgi.com>
> To: Andrew Morton <akpm@linux-foundation.org>
> To: Russell King <linux@arm.linux.org.uk>
> Cc: Russ Anderson <rja@sgi.com>
> Cc: Robin Holt <holt@sgi.com>
> Cc: H. Peter Anvin <hpa@zytor.com>
> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
> Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
> Cc: the arch/x86 maintainers <x86@kernel.org>
> Cc: Arm Mailing List <linux-arm-kernel@lists.infradead.org>

Almost-but-not-quite-Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> :)

> diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
> index f219703..92b47df 100644
> --- a/arch/arm/kernel/process.c
> +++ b/arch/arm/kernel/process.c
> @@ -174,14 +174,14 @@ void arch_cpu_idle(void)
>  		default_idle();
>  }
>  
> -static char reboot_mode = 'h';
> +enum reboot_mode reboot_mode = REBOOT_HARD;
>  
> -int __init reboot_setup(char *str)
> +static int __init reboot_setup(char *str)
>  {
> -	reboot_mode = str[0];
> +	if ('s' == str[0])
> +		reboot_mode = REBOOT_SOFT;

Remember we talked about the 'gpio' mode as well, so you also need here
+	if ('g' == str[0])
		reboot_mode = REBOOT_GPIO;
H. Peter Anvin May 11, 2013, 3:47 p.m. UTC | #2
By the way, do we really need Yoda programming here?

Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:

>On Sat, May 11, 2013 at 06:57:25AM -0500, Robin Holt wrote:
>> This patch prepares for the moving the parsing of reboot= to the
>generic
>> kernel code by making reboot_mode into a more generic form.
>> 
>> Signed-off-by: Robin Holt <holt@sgi.com>
>> To: Andrew Morton <akpm@linux-foundation.org>
>> To: Russell King <linux@arm.linux.org.uk>
>> Cc: Russ Anderson <rja@sgi.com>
>> Cc: Robin Holt <holt@sgi.com>
>> Cc: H. Peter Anvin <hpa@zytor.com>
>> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
>> Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
>> Cc: the arch/x86 maintainers <x86@kernel.org>
>> Cc: Arm Mailing List <linux-arm-kernel@lists.infradead.org>
>
>Almost-but-not-quite-Acked-by: Russell King
><rmk+kernel@arm.linux.org.uk> :)
>
>> diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
>> index f219703..92b47df 100644
>> --- a/arch/arm/kernel/process.c
>> +++ b/arch/arm/kernel/process.c
>> @@ -174,14 +174,14 @@ void arch_cpu_idle(void)
>>  		default_idle();
>>  }
>>  
>> -static char reboot_mode = 'h';
>> +enum reboot_mode reboot_mode = REBOOT_HARD;
>>  
>> -int __init reboot_setup(char *str)
>> +static int __init reboot_setup(char *str)
>>  {
>> -	reboot_mode = str[0];
>> +	if ('s' == str[0])
>> +		reboot_mode = REBOOT_SOFT;
>
>Remember we talked about the 'gpio' mode as well, so you also need here
>+	if ('g' == str[0])
>		reboot_mode = REBOOT_GPIO;
Russell King - ARM Linux May 11, 2013, 7:10 p.m. UTC | #3
Please, stop this idiotic incomprehensible jargon.

On Sat, May 11, 2013 at 08:47:28AM -0700, H. Peter Anvin wrote:
> By the way, do we really need Yoda programming here?
> 
> Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
> 
> >On Sat, May 11, 2013 at 06:57:25AM -0500, Robin Holt wrote:
> >> This patch prepares for the moving the parsing of reboot= to the
> >generic
> >> kernel code by making reboot_mode into a more generic form.
> >> 
> >> Signed-off-by: Robin Holt <holt@sgi.com>
> >> To: Andrew Morton <akpm@linux-foundation.org>
> >> To: Russell King <linux@arm.linux.org.uk>
> >> Cc: Russ Anderson <rja@sgi.com>
> >> Cc: Robin Holt <holt@sgi.com>
> >> Cc: H. Peter Anvin <hpa@zytor.com>
> >> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
> >> Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
> >> Cc: the arch/x86 maintainers <x86@kernel.org>
> >> Cc: Arm Mailing List <linux-arm-kernel@lists.infradead.org>
> >
> >Almost-but-not-quite-Acked-by: Russell King
> ><rmk+kernel@arm.linux.org.uk> :)
> >
> >> diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
> >> index f219703..92b47df 100644
> >> --- a/arch/arm/kernel/process.c
> >> +++ b/arch/arm/kernel/process.c
> >> @@ -174,14 +174,14 @@ void arch_cpu_idle(void)
> >>  		default_idle();
> >>  }
> >>  
> >> -static char reboot_mode = 'h';
> >> +enum reboot_mode reboot_mode = REBOOT_HARD;
> >>  
> >> -int __init reboot_setup(char *str)
> >> +static int __init reboot_setup(char *str)
> >>  {
> >> -	reboot_mode = str[0];
> >> +	if ('s' == str[0])
> >> +		reboot_mode = REBOOT_SOFT;
> >
> >Remember we talked about the 'gpio' mode as well, so you also need here
> >+	if ('g' == str[0])
> >		reboot_mode = REBOOT_GPIO;
> 
> -- 
> Sent from my mobile phone. Please excuse brevity and lack of formatting.
H. Peter Anvin May 12, 2013, 2:49 a.m. UTC | #4
Sorry.  Yoga programming meaning reversing the arguments to ==.

Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:

>Please, stop this idiotic incomprehensible jargon.
>
>On Sat, May 11, 2013 at 08:47:28AM -0700, H. Peter Anvin wrote:
>> By the way, do we really need Yoda programming here?
>> 
>> Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
>> 
>> >On Sat, May 11, 2013 at 06:57:25AM -0500, Robin Holt wrote:
>> >> This patch prepares for the moving the parsing of reboot= to the
>> >generic
>> >> kernel code by making reboot_mode into a more generic form.
>> >> 
>> >> Signed-off-by: Robin Holt <holt@sgi.com>
>> >> To: Andrew Morton <akpm@linux-foundation.org>
>> >> To: Russell King <linux@arm.linux.org.uk>
>> >> Cc: Russ Anderson <rja@sgi.com>
>> >> Cc: Robin Holt <holt@sgi.com>
>> >> Cc: H. Peter Anvin <hpa@zytor.com>
>> >> Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
>> >> Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
>> >> Cc: the arch/x86 maintainers <x86@kernel.org>
>> >> Cc: Arm Mailing List <linux-arm-kernel@lists.infradead.org>
>> >
>> >Almost-but-not-quite-Acked-by: Russell King
>> ><rmk+kernel@arm.linux.org.uk> :)
>> >
>> >> diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
>> >> index f219703..92b47df 100644
>> >> --- a/arch/arm/kernel/process.c
>> >> +++ b/arch/arm/kernel/process.c
>> >> @@ -174,14 +174,14 @@ void arch_cpu_idle(void)
>> >>  		default_idle();
>> >>  }
>> >>  
>> >> -static char reboot_mode = 'h';
>> >> +enum reboot_mode reboot_mode = REBOOT_HARD;
>> >>  
>> >> -int __init reboot_setup(char *str)
>> >> +static int __init reboot_setup(char *str)
>> >>  {
>> >> -	reboot_mode = str[0];
>> >> +	if ('s' == str[0])
>> >> +		reboot_mode = REBOOT_SOFT;
>> >
>> >Remember we talked about the 'gpio' mode as well, so you also need
>here
>> >+	if ('g' == str[0])
>> >		reboot_mode = REBOOT_GPIO;
>> 
>> -- 
>> Sent from my mobile phone. Please excuse brevity and lack of
>formatting.
diff mbox

Patch

diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 308ad7d..e2b551e 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -9,6 +9,7 @@ 
  */
 
 #ifndef __ASSEMBLY__
+#include <linux/reboot.h>
 
 struct tag;
 struct meminfo;
@@ -39,7 +40,7 @@  struct machine_desc {
 	unsigned char		reserve_lp0 :1;	/* never has lp0	*/
 	unsigned char		reserve_lp1 :1;	/* never has lp1	*/
 	unsigned char		reserve_lp2 :1;	/* never has lp2	*/
-	char			restart_mode;	/* default restart mode	*/
+	enum reboot_mode	reboot_mode;	/* default restart mode	*/
 	struct smp_operations	*smp;		/* SMP operations	*/
 	void			(*fixup)(struct tag *, char **,
 					 struct meminfo *);
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index f219703..92b47df 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -174,14 +174,14 @@  void arch_cpu_idle(void)
 		default_idle();
 }
 
-static char reboot_mode = 'h';
+enum reboot_mode reboot_mode = REBOOT_HARD;
 
-int __init reboot_setup(char *str)
+static int __init reboot_setup(char *str)
 {
-	reboot_mode = str[0];
+	if ('s' == str[0])
+		reboot_mode = REBOOT_SOFT;
 	return 1;
 }
-
 __setup("reboot=", reboot_setup);
 
 void machine_shutdown(void)
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 1522c7a..e05df42 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -73,7 +73,7 @@  __setup("fpe=", fpe_setup);
 
 extern void paging_init(struct machine_desc *desc);
 extern void sanity_check_meminfo(void);
-extern void reboot_setup(char *str);
+extern enum reboot_mode reboot_mode;
 extern void setup_dma_zone(struct machine_desc *desc);
 
 unsigned int processor_id;
@@ -769,8 +769,8 @@  void __init setup_arch(char **cmdline_p)
 
 	setup_dma_zone(mdesc);
 
-	if (mdesc->restart_mode)
-		reboot_setup(&mdesc->restart_mode);
+	if (mdesc->reboot_mode != REBOOT_HARD)
+		reboot_mode = mdesc->reboot_mode;
 
 	init_mm.start_code = (unsigned long) _text;
 	init_mm.end_code   = (unsigned long) _etext;
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c
index 6987a09..9669cc0 100644
--- a/arch/arm/mach-footbridge/cats-hw.c
+++ b/arch/arm/mach-footbridge/cats-hw.c
@@ -86,7 +86,7 @@  fixup_cats(struct tag *tags, char **cmdline, struct meminfo *mi)
 MACHINE_START(CATS, "Chalice-CATS")
 	/* Maintainer: Philip Blundell */
 	.atag_offset	= 0x100,
-	.restart_mode	= 's',
+	.reboot_mode	= REBOOT_SOFT,
 	.fixup		= fixup_cats,
 	.map_io		= footbridge_map_io,
 	.init_irq	= footbridge_init_irq,