diff options
Diffstat (limited to 'arch/sparc64/prom/bootstr.c')
-rw-r--r-- | arch/sparc64/prom/bootstr.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/arch/sparc64/prom/bootstr.c b/arch/sparc64/prom/bootstr.c index e226c6e95..7ef17159d 100644 --- a/arch/sparc64/prom/bootstr.c +++ b/arch/sparc64/prom/bootstr.c @@ -1,4 +1,4 @@ -/* $Id: bootstr.c,v 1.3 1997/03/04 16:27:06 jj Exp $ +/* $Id: bootstr.c,v 1.4 1997/06/17 13:25:35 jj Exp $ * bootstr.c: Boot string/argument acquisition from the PROM. * * Copyright(C) 1995 David S. Miller (davem@caip.rutgers.edu) @@ -6,18 +6,20 @@ */ #include <linux/string.h> +#include <linux/init.h> #include <asm/oplib.h> #define BARG_LEN 256 -static char barg_buf[BARG_LEN]; -static char fetched = 0; +int bootstr_len __initdata = BARG_LEN; +static int bootstr_valid __initdata = 0; +static char bootstr_buf[BARG_LEN] __initdata = { 0 }; -char * -prom_getbootargs(void) +__initfunc(char * +prom_getbootargs(void)) { /* This check saves us from a panic when bootfd patches args. */ - if (fetched) return barg_buf; - prom_getstring(prom_chosen_node, "bootargs", barg_buf, BARG_LEN); - fetched = 1; - return barg_buf; + if (bootstr_valid) return bootstr_buf; + prom_getstring(prom_chosen_node, "bootargs", bootstr_buf, BARG_LEN); + bootstr_valid = 1; + return bootstr_buf; } |