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-...@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 
*/

Reply via email to