On Fri, 2 May 2003, Atsushi Nemoto wrote:
> I found that initrd_header in mips64 cvs kernel is broken. The
> initrd_header should be consist of two 32bit words while 32bit
> addinitrd is used for 64bit kernel too.
>
> diff -ur linux-mips-cvs/arch/mips64/kernel/setup.c
> linux.new/arch/mips64/kernel/setup.c
> --- linux-mips-cvs/arch/mips64/kernel/setup.c Wed Apr 9 22:06:57 2003
> +++ linux.new/arch/mips64/kernel/setup.c Fri May 2 21:47:36 2003
> @@ -245,7 +245,7 @@
> {
> #ifdef CONFIG_BLK_DEV_INITRD
> unsigned long tmp;
> - unsigned long *initrd_header;
> + unsigned int *initrd_header;
I think you better use u32 if it must be a 32-bit value.
> #endif
> unsigned long bootmap_size;
> unsigned long start_pfn, max_pfn;
> @@ -255,7 +255,7 @@
> tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
> if (tmp < (unsigned long)&_end)
> tmp += PAGE_SIZE;
> - initrd_header = (unsigned long *)tmp;
> + initrd_header = (unsigned int *)tmp;
> if (initrd_header[0] == 0x494E5244) {
> initrd_start = (unsigned long)&initrd_header[2];
> initrd_end = initrd_start + initrd_header[1];
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
|