• Sergei Shtylyov's avatar
    siimage: fix kernel oops on PPC 44x · c976816b
    Sergei Shtylyov authored
    Fix kernel oops due to machine check occuring in init_chipset_siimage() on PPC
    44x platforms.  These 32-bit CPUs have 36-bit physical address and PCI I/O and
    memory spaces are mapped beyond 4 GB; arch/ppc/ code has a fixup in ioremap()
    that creates an illusion of the PCI I/O and memory resources being mapped below
    4 GB, while arch/powerpc/ code got rid of this fixup with PPC 44x having instead
    CONFIG_RESOURCES_64BIT=y -- this causes the resources to be truncated to 32-bit
    'unsigned long' type in this driver, and so non-existant memory being ioremap'ed
    and then accessed...
    
    Thanks to Valentine Barshak for providing an initial patch and explanations.
    Signed-off-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
    Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    c976816b
siimage.c 22.8 KB