Re: initrd_size inflation breaks initramfs

From: Jesse Barnes <jesse.barnes_at_intel.com>
Date: 2005-11-29 03:15:31
On Sunday, November 27, 2005 10:23 pm, dann frazier wrote:
> hey,
>   I've been trying to track down why initramfs seems to be broken on
> ia64 when passed using the initrd= flag.  This appears to be due to an
> inflated ia64_boot_param->initrd_size.  In my case, initrd_size got
> set to 1957888 (which happens to be a multiple of 4K), when my
> initramfs file is actually 1957415 bytes.
>
> unpack_to_rootfs() expects gunzip() to succeed until it has reached
> the initrd_size.  Since it thinks the image is larger than it actually
> is, it runs off the end of the initrd and the initramfs footprinting
> fails. I can get unpack_to_rootfs to succeed by hardcoding my
> initrd_size.
>
> My guess is that this is a bug in elilo.
>
> initrd.c has:
>         /* round up to get required number of pages (4KB) */
>         initrd->pgcnt = pgcnt = EFI_SIZE_TO_PAGES(size);
>
> initrd->pgcnt is later used to calculate the initrd_size boot param,
> but it is now (size % 4096) bytes too big.

I thought this bug was fixed?  I remember Erik J. and I seeing the same 
thing, and iirc we corrected elilo and sent the patch upstream.  Or is 
this a different problem maybe?

Jesse
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Tue Nov 29 03:16:05 2005

This archive was generated by hypermail 2.1.8 : 2005-11-29 03:16:12 EST