lkml.org 
[lkml]   [2008]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/2 v2] Only print "Decompressing Linux" etc when 'debug' is passed.
    Date
    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    [W:0.069 / U:32.576 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site