lkml.org 
[lkml]   [2008]   [May]   [24]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    FromKristian Høgsberg <>
    Subject[PATCH 2/2 v2] Only print "Decompressing Linux" etc when 'debug' is passed.
    DateSat, 24 May 2008 23:47:47 -0400
    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;
     }
    -- 
    1.5.5.1
    --
    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/
    
    
    \
     
     \ /
      Last update: 2008-05-25 05:51    [from the cache]
    ©2003-2008