Re: [PATCH v3 00/38] Kconfig: Introduce HAS_IOPORT config option
From: "Arnd Bergmann" <arnd@arndb.de>
Date: 2023-03-14 14:06:24
Also in:
linux-arch, linux-pci, linux-riscv, lkml
On Tue, Mar 14, 2023, at 13:11, Niklas Schnelle wrote:
Hello Kernel Hackers,
Some platforms such as s390 do not support PCI I/O spaces. On such platforms
I/O space accessors like inb()/outb() are stubs that can never actually work.
The way these stubs are implemented in asm-generic/io.h leads to compiler
warnings because any use will be a NULL pointer access on these platforms. In
a previous patch we tried handling this with a run-time warning on access. This
approach however was rejected by Linus[0] with the argument that this really
should be a compile-time check and, though a much more invasive change, we
believe that is indeed the right approach.
This patch series aims to do exactly that by introducing a HAS_IOPORT config
option akin to the existing HAS_IOMEM. When this is unset inb()/outb() and
friends may not be defined. This is also the same approach originally planned by
Uwe Kleine-König as mentioned in commit ce816fa88cca ("Kconfig: rename
HAS_IOPORT to HAS_IOPORT_MAP").
This series builds heavily on an original patch for demonstating the concept by
Arnd Bergmann[1] and incoporates feedback of previous RFC versions [2] and [3].
This version is based on v6.3-rc1 and is also available on my kernel.org tree
in the has_ioport_v3 branch with the PGP signed tag has_ioport_v3_signed:
https://git.kernel.org/pub/scm/linux/kernel/git/niks/linux.gitThanks a lot for the rebase, hopefully we can finally get this merged. I'll go through all patches and note everything I spot that should be improved. I'd like to make sure that at least the first patch can get merged quickly so we can continue on the rest. Since this is all related to asm-generic/io.h and cross-architecture work, I can pick up anything that has nobody else maintaining it through the asm-generic tree. Arnd