• Linus Torvalds's avatar
    pci_iounmap'2: Electric Boogaloo: try to make sense of it all · 316e8d79
    Linus Torvalds authored
    Nathan Chancellor reports that the recent change to pci_iounmap in
    commit 9caea000 ("parisc: Declare pci_iounmap() parisc version only
    when CONFIG_PCI enabled") causes build errors on arm64.
    
    It took me about two hours to convince myself that I think I know what
    the logic of that mess of #ifdef's in the <asm-generic/io.h> header file
    really aim to do, and rewrite it to be easier to follow.
    
    Famous last words.
    
    Anyway, the code has now been lifted from that grotty header file into
    lib/pci_iomap.c, and has fairly extensive comments about what the logic
    is.  It also avoids indirecting through another confusing (and badly
    named) helper function that has other preprocessor config conditionals.
    
    Let's see what odd architecture did something else strange in this area
    to break things.  But my arm64 cross build is clean.
    
    Fixes: 9caea000 ("parisc: Declare pci_iounmap() parisc version only when CONFIG_PCI enabled")
    Reported-by: default avatarNathan Chancellor <nathan@kernel.org>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Ulrich Teichert <krypton@ulrich-teichert.org>
    Cc: James Bottomley <James.Bottomley@hansenpartnership.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    316e8d79
io.h 22.9 KB