• Geert Uytterhoeven's avatar
    initrd: Fix virtual/physical mix-up in overwrite test · fb6624eb
    Geert Uytterhoeven authored
    On recent kernels, I get the following error when using an initrd:
    
    | initrd overwritten (0x00b78000 < 0x07668000) - disabling it.
    
    My Amiga 4000 has 12 MiB of RAM at physical address 0x07400000 (virtual
    0x00000000).
    The initrd is located at the end of RAM: 0x00b78000 - 0x00c00000 (virtual).
    The overwrite test compares the (virtual) initrd location to the (physical)
    first available memory location, which fails.
    
    This patch converts initrd_start to a page frame number, so it can safely be
    compared with min_low_pfn.
    
    Before the introduction of discontiguous memory support on m68k
    (12d810c1), min_low_pfn was just left
    untouched by the m68k-specific code (zero, I guess), and everything worked
    fine.
    Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    fb6624eb
main.c 21.1 KB