Le 04/04/2021 à 21:26, Randy Dunlap a écrit :
When neither CONFIG_PCI nor CONFIG_IBMVIO is set/enabled, iommu.c has a build error. The fault injection code is not useful in that kernel config, so make the FAIL_IOMMU option depend on PCI || IBMVIO. Prevents this build error (warning escalated to error): ../arch/powerpc/kernel/iommu.c:178:30: error: 'fail_iommu_bus_notifier' defined but not used [-Werror=unused-variable] 178 | static struct notifier_block fail_iommu_bus_notifier = { Fixes: d6b9a81b2a45 ("powerpc: IOMMU fault injection") Signed-off-by: Randy Dunlap <rdun...@infradead.org> Reported-by: kernel test robot <l...@intel.com> Suggested-by: Michael Ellerman <m...@ellerman.id.au> Cc: Michael Ellerman <m...@ellerman.id.au> Cc: linuxppc-dev@lists.ozlabs.org Cc: Anton Blanchard <an...@samba.org> --- I was supposed to update this about one month ago, but then I lost some email and also took a break for a few weeks, then I remembered, so here it is. arch/powerpc/Kconfig.debug | 1 + 1 file changed, 1 insertion(+)
Wouldn't it be cleaner to get rid of those two horid #ifdefs ? Of course we can do both. diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index 216871414434..d691afa8acf8 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c @@ -180,12 +180,10 @@ static struct notifier_block fail_iommu_bus_notifier = { static int __init fail_iommu_setup(void) { -#ifdef CONFIG_PCI - bus_register_notifier(&pci_bus_type, &fail_iommu_bus_notifier); -#endif -#ifdef CONFIG_IBMVIO - bus_register_notifier(&vio_bus_type, &fail_iommu_bus_notifier); -#endif + if (IS_ENABLED(CONFIG_PCI)) + bus_register_notifier(&pci_bus_type, &fail_iommu_bus_notifier); + if (IS_ENABLED(CONFIG_IBMVIO)) + bus_register_notifier(&vio_bus_type, &fail_iommu_bus_notifier); return 0; } diff --git a/include/linux/pci.h b/include/linux/pci.h index 86c799c97b77..361f4f255911 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -964,6 +964,8 @@ enum { #define PCI_IRQ_MSIX (1 << 2) /* Allow MSI-X interrupts */ #define PCI_IRQ_AFFINITY (1 << 3) /* Auto-assign affinity */ +extern struct bus_type pci_bus_type; + /* These external functions are only available when PCI support is enabled */ #ifdef CONFIG_PCI @@ -986,8 +988,6 @@ enum pcie_bus_config_types { extern enum pcie_bus_config_types pcie_bus_config; -extern struct bus_type pci_bus_type; - /* Do NOT directly access these two variables, unless you are arch-specific PCI * code, or PCI core code. */ extern struct list_head pci_root_buses; /* List of all known PCI buses */