Message ID | 20231201121622.16343-2-pstanner@redhat.com |
---|---|
State | New |
Headers | show |
Series | Regather scattered PCI-Code | expand |
On Fri, Dec 1, 2023, at 13:16, Philipp Stanner wrote: > > -#ifdef CONFIG_PCI > /** You should not remove the #ifdef here, it probably results in a build failure when CONFIG_GENERIC_PCI_IOMAP is set and GENERIC_PCI is not. Alternatively you could use Kconfig or Makefile logic to prevent the file from being built without CONFIG_PCI. Arnd
On Fri, 2023-12-01 at 15:43 +0100, Arnd Bergmann wrote: > On Fri, Dec 1, 2023, at 13:16, Philipp Stanner wrote: > > > > -#ifdef CONFIG_PCI > > /** > > You should not remove the #ifdef here, it probably results in > a build failure when CONFIG_GENERIC_PCI_IOMAP is set and > GENERIC_PCI is not. CONFIG_PCI you mean. Yes, that results in a build failure. That's what the Intel bots have reminded me of subtly before, which is why I: > > Alternatively you could use Kconfig or Makefile logic to > prevent the file from being built without CONFIG_PCI. did exactly that in this very patch: @@ -14,6 +14,7 @@ ifdef CONFIG_PCI <------------ obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_SYSFS) += slot.o obj-$(CONFIG_ACPI) += pci-acpi.o +obj-$(CONFIG_GENERIC_PCI_IOMAP) += iomap.o <----------- endif P. > > Arnd >
On Fri, Dec 1, 2023, at 19:56, Philipp Stanner wrote: > On Fri, 2023-12-01 at 15:43 +0100, Arnd Bergmann wrote: >> On Fri, Dec 1, 2023, at 13:16, Philipp Stanner wrote: >> > >> > -#ifdef CONFIG_PCI >> > /** >> >> You should not remove the #ifdef here, it probably results in >> a build failure when CONFIG_GENERIC_PCI_IOMAP is set and >> GENERIC_PCI is not. > > CONFIG_PCI you mean. > Yes, that results in a build failure. That's what the Intel bots have > reminded me of subtly before, which is why I: > >> >> Alternatively you could use Kconfig or Makefile logic to >> prevent the file from being built without CONFIG_PCI. > > did exactly that in this very patch: > > @@ -14,6 +14,7 @@ ifdef CONFIG_PCI <------------ > obj-$(CONFIG_PROC_FS) += proc.o > obj-$(CONFIG_SYSFS) += slot.o > obj-$(CONFIG_ACPI) += pci-acpi.o > +obj-$(CONFIG_GENERIC_PCI_IOMAP) += iomap.o <----------- > endif Ok, got it, looks good then. Arnd
diff --git a/drivers/pci/Kconfig b/drivers/pci/Kconfig index 74147262625b..d35001589d88 100644 --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -13,6 +13,11 @@ config FORCE_PCI select HAVE_PCI select PCI +# select this to provide a generic PCI iomap, +# without PCI itself having to be defined +config GENERIC_PCI_IOMAP + bool + menuconfig PCI bool "PCI support" depends on HAVE_PCI diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile index cc8b4e01e29d..64dcedccfc87 100644 --- a/drivers/pci/Makefile +++ b/drivers/pci/Makefile @@ -14,6 +14,7 @@ ifdef CONFIG_PCI obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_SYSFS) += slot.o obj-$(CONFIG_ACPI) += pci-acpi.o +obj-$(CONFIG_GENERIC_PCI_IOMAP) += iomap.o endif obj-$(CONFIG_OF) += of.o diff --git a/lib/pci_iomap.c b/drivers/pci/iomap.c similarity index 99% rename from lib/pci_iomap.c rename to drivers/pci/iomap.c index ce39ce9f3526..0a9d503ba533 100644 --- a/lib/pci_iomap.c +++ b/drivers/pci/iomap.c @@ -9,7 +9,6 @@ #include <linux/export.h> -#ifdef CONFIG_PCI /** * pci_iomap_range - create a virtual mapping cookie for a PCI BAR * @dev: PCI device that owns the BAR @@ -176,5 +175,3 @@ void pci_iounmap(struct pci_dev *dev, void __iomem *p) EXPORT_SYMBOL(pci_iounmap); #endif /* ARCH_WANTS_GENERIC_PCI_IOUNMAP */ - -#endif /* CONFIG_PCI */ diff --git a/lib/Kconfig b/lib/Kconfig index 3ea1c830efab..1bf859166ac7 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -70,9 +70,6 @@ source "lib/math/Kconfig" config NO_GENERIC_PCI_IOPORT_MAP bool -config GENERIC_PCI_IOMAP - bool - config GENERIC_IOMAP bool select GENERIC_PCI_IOMAP diff --git a/lib/Makefile b/lib/Makefile index 6b09731d8e61..0800289ec6c5 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -153,7 +153,6 @@ CFLAGS_debug_info.o += $(call cc-option, -femit-struct-debug-detailed=any) obj-y += math/ crypto/ obj-$(CONFIG_GENERIC_IOMAP) += iomap.o -obj-$(CONFIG_GENERIC_PCI_IOMAP) += pci_iomap.o obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o devres.o obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o
This file is guarded by an #ifdef CONFIG_PCI. It, consequently, does not belong to lib/ because it is not generic infrastructure. Move the file to drivers/pci/ and implement the necessary changes to Makefiles and Kconfigs. Suggested-by: Danilo Krummrich <dakr@redhat.com> Signed-off-by: Philipp Stanner <pstanner@redhat.com> --- drivers/pci/Kconfig | 5 +++++ drivers/pci/Makefile | 1 + lib/pci_iomap.c => drivers/pci/iomap.c | 3 --- lib/Kconfig | 3 --- lib/Makefile | 1 - 5 files changed, 6 insertions(+), 7 deletions(-) rename lib/pci_iomap.c => drivers/pci/iomap.c (99%)