>>>>> On Fri, 02 May 2003 22:05:17 +0900 (JST), Atsushi Nemoto
>>>>> <anemo@mba.ocn.ne.jp> said:
anemo> I found that initrd_header in mips64 cvs kernel is broken. The
anemo> initrd_header should be consist of two 32bit words while 32bit
anemo> addinitrd is used for 64bit kernel too.
This is not still fixed. Here is a revised patch for 2.6 tree.
Could you apply?
diff -u linux-mips/arch/mips/kernel/setup.c linux/arch/mips/kernel/
--- linux-mips/arch/mips/kernel/setup.c Sat Dec 18 22:11:28 2004
+++ linux/arch/mips/kernel/setup.c Sat Dec 18 21:20:59 2004
@@ -281,12 +281,12 @@
initrd_reserve_bootmem = 1;
} else {
unsigned long tmp;
- unsigned long *initrd_header;
+ u32 *initrd_header;
- tmp = ((reserved_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
+ tmp = ((reserved_end + PAGE_SIZE-1) & PAGE_MASK) - sizeof(u32)
* 2;
if (tmp < reserved_end)
tmp += PAGE_SIZE;
- initrd_header = (unsigned long *)tmp;
+ initrd_header = (u32 *)tmp;
if (initrd_header[0] == 0x494E5244) {
initrd_start = (unsigned long)&initrd_header[2];
initrd_end = initrd_start + initrd_header[1];
---
Atsushi Nemoto
|