linux-mips
[Top] [All Lists]

initrd_header for mips64 kernel

To: linux-mips@linux-mips.org, ralf@linux-mips.org
Subject: initrd_header for mips64 kernel
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date: Fri, 02 May 2003 22:05:17 +0900 (JST)
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
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;
 #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];
---
Atsushi Nemoto

<Prev in Thread] Current Thread [Next in Thread>