• Geert Uytterhoeven's avatar
    sh: landisk: Add missing initialization of sh_io_port_base · 0c64a0dc
    Geert Uytterhoeven authored
    The Landisk setup code maps the CF IDE area using ioremap_prot(), and
    passes the resulting virtual addresses to the pata_platform driver,
    disguising them as I/O port addresses.  Hence the pata_platform driver
    translates them again using ioport_map().
    As CONFIG_GENERIC_IOMAP=n, and CONFIG_HAS_IOPORT_MAP=y, the
    SuperH-specific mapping code in arch/sh/kernel/ioport.c translates
    I/O port addresses to virtual addresses by adding sh_io_port_base, which
    defaults to -1, thus breaking the assumption of an identity mapping.
    
    Fix this by setting sh_io_port_base to zero.
    
    Fixes: 37b7a978 ("sh: machvec IO death.")
    Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarRich Felker <dalias@libc.org>
    0c64a0dc
setup.c 2.53 KB