diff --git a/ChangeLog b/ChangeLog index cb2dd4d5c..9d9c3fd5a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1999-10-17 OKUJI Yoshinori + + * stage2/boot.c (load_initrd): Change types of *RAMDISK and + MOVETO to unsigned long. + Apply the macro RAW_ADDR to MOVETO. + 1999-10-16 OKUJI Yoshinori * docs/multiboot.texi: Include the example source files of a diff --git a/stage2/boot.c b/stage2/boot.c index 94ed72f06..8452ff0cc 100644 --- a/stage2/boot.c +++ b/stage2/boot.c @@ -508,18 +508,18 @@ int load_initrd (char *initrd) { int len; - long *ramdisk, moveto; + unsigned long *ramdisk, moveto; if (! grub_open (initrd) || ! (len = grub_read ((char *) cur_addr, -1))) return 0; moveto = ((mbi.mem_upper + 0x400) * 0x400 - len) & 0xfffff000; - memmove ((void *) moveto, (void *) cur_addr, len); + memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len); printf (" [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len); - ramdisk = (long *) (LINUX_SETUP + LINUX_SETUP_INITRD); - ramdisk[0] = moveto; + ramdisk = (unsigned long *) (LINUX_SETUP + LINUX_SETUP_INITRD); + ramdisk[0] = RAW_ADDR (moveto); ramdisk[1] = len; return 1;