Messages in this thread | | | Date | Sat, 24 May 2008 21:54:01 -0700 | From | "Yinghai Lu" <> | Subject | Re: [PATCH 2/2 v2] Only print "Decompressing Linux" etc when 'debug' is passed. |
| |
On Sat, May 24, 2008 at 8:47 PM, Kristian Høgsberg <krh@redhat.com> wrote: > Signed-off-by: Kristian Høgsberg <krh@redhat.com> > --- > > Updated to use the standard 'debug' parameter instead of 'noisy'. > > arch/x86/boot/compressed/misc.c | 30 +++++++++++++++++++++++++++--- > 1 files changed, 27 insertions(+), 3 deletions(-) > > diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c > index 0d03579..017df26 100644 > --- a/arch/x86/boot/compressed/misc.c > +++ b/arch/x86/boot/compressed/misc.c > @@ -190,6 +190,7 @@ static void gzip_release(void **); > */ > static struct boot_params *real_mode; /* Pointer to real-mode data */ > static struct screen_info *rm_screen_info; /* Pointer to real-mode data */ > +static int debug; > > extern unsigned char input_data[]; > extern int input_len; > @@ -391,7 +392,8 @@ static void parse_elf(void *output) > return; > } > > - putstr("Parsing ELF... "); > + if (debug) > + putstr("Parsing ELF... "); > > phdrs = malloc(sizeof(*phdrs) * ehdr.e_phnum); > if (!phdrs) > @@ -419,11 +421,27 @@ static void parse_elf(void *output) > } > } > > +static const char *strnstr(const char *string, int len, const char *s) > +{ > + int i, j; > + > + for (i = 0; i < len; i++) { > + for (j = 0; i + j < len && s[j]; j++) > + if (string[i + j] != s[j]) > + break; > + if (s[j] == '\0') > + return string + i; > + } > + > + return NULL; > +} > asmlinkage void decompress_kernel(void *rmode, memptr heap, > unsigned char *input_data, > unsigned long input_len, > unsigned char *output) > { > + char *cmdline; > + > real_mode = rmode; > > if (rm_screen_info->orig_video_mode == 7) { > @@ -437,6 +455,10 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap, > lines = rm_screen_info->orig_video_lines; > cols = rm_screen_info->orig_video_cols; > > + cmdline = (char *) real_mode->hdr.cmd_line_ptr; > + if (strnstr(cmdline, real_mode->hdr.cmdline_size, "debug")) > + debug = 1; > + > window = output; /* Output buffer (Normally at 1M) */ > free_mem_ptr = heap; /* Heap */ > free_mem_end_ptr = heap + BOOT_HEAP_SIZE; > @@ -461,9 +483,11 @@ asmlinkage void decompress_kernel(void *rmode, memptr heap, > #endif > > makecrc(); > - putstr("\nDecompressing Linux... "); > + if (debug) > + putstr("\nDecompressing Linux... "); > gunzip(); > parse_elf(output); > - putstr("done.\nBooting the kernel.\n"); > + if (debug) > + putstr("done.\nBooting the kernel.\n"); > return; > } > --
does that printout hurt anything?
YH -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |