lkml.org 
[lkml]   [2001]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subjectunderstanding gunzip
hi,

i tried 2.4.0 kernel with rmk and np patches in my brutus board. (Brutus
is a StrongArm based development environment)

my patched kernel is 2.4.0-rmk1-np1

the kernel uncompresses fine. but uncompressing the ramdisk fails. In
this instance my uncompressed ramdisk is about 3.5mb.

i looked in to gunzip() routine. in inflate() (inflate.c)
i found following,

do {
hufts = 0;
gzip_mark(&ptr);
if ((r = inflate_block(&e)) != 0) {
gzip_release(&ptr);
return r;
}
gzip_release(&ptr);
if (hufts > h)
h = hufts;
} while (!e);

and gzip_mark() and gzip_release() are defined in rd.c as,

static void __init gzip_mark(void **ptr)
{
}

static void __init gzip_release(void **ptr)
{
}

now if i comment these gzip_mark and gzip_release lines then the kernel
would complain,

Out of memory

-- System halted

then i tried to see where ptr is poinitng to, according to the
System.map it points to a variable called insize,

it's defined as

./arch/arm/boot/compressed/misc.c : static unsigned insize = 0;
/* valid bytes in inbuf */

i don't understand what is happening here!! or did i miss anything??

tia

dhammika




-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:52    [W:0.026 / U:0.184 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site