]> 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)
commitd140cbb0ab8b25f481fbdb0aaaa303191a0aacc6
treeefc46ca4f92669dc13bc79f86d8708c17e7c70d2
parent107d39c19790342a988c4573e279fd1bc0c642f4
pci_iounmap'2: Electric Boogaloo: try to make sense of it all

Nathan Chancellor reports that the recent change to pci_iounmap in
commit 5c1ac0686664 ("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: 5c1ac0686664 ("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