]> git.baikalelectronics.ru Git - kernel.git/commit
pci_iounmap'2: Electric Boogaloo: try to make sense of it all
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Sep 2021 00:13:35 +0000 (17:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 20 Sep 2021 00:13:35 +0000 (17:13 -0700)
commit8f60aae7678c5bf0d8429ab2ac7dae46543f1183
treeefc46ca4f92669dc13bc79f86d8708c17e7c70d2
parentd6dfd67934cd5b55390421d20ebf3112767e840e
pci_iounmap'2: Electric Boogaloo: try to make sense of it all

Nathan Chancellor reports that the recent change to pci_iounmap in
commit 1b1b69464a26 ("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: 1b1b69464a26 ("parisc: Declare pci_iounmap() parisc version only when CONFIG_PCI enabled")
Reported-by: Nathan 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: Linus Torvalds <torvalds@linux-foundation.org>
include/asm-generic/io.h
lib/pci_iomap.c