Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
---
 arch/powerpc/kernel/pci_dn.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/pci_dn.c b/arch/powerpc/kernel/pci_dn.c
index ecdccce..4fc6ede 100644
--- a/arch/powerpc/kernel/pci_dn.c
+++ b/arch/powerpc/kernel/pci_dn.c
@@ -31,6 +31,7 @@
 #include <asm/pci-bridge.h>
 #include <asm/ppc-pci.h>
 #include <asm/firmware.h>
+#include <asm/eeh.h>
 
 /*
  * The function is used to find the firmware data of one
@@ -181,7 +182,6 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
 {
 #ifdef CONFIG_PCI_IOV
        struct pci_dn *parent, *pdn;
-       struct eeh_dev *edev;
        int i;
 
        /* Only support IOV for now */
@@ -199,6 +199,8 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
                return NULL;
 
        for (i = 0; i < pci_sriov_get_totalvfs(pdev); i++) {
+               struct eeh_dev *edev __maybe_unused;
+
                pdn = add_one_dev_pci_data(parent, NULL, i,
                                           pci_iov_virtfn_bus(pdev, i),
                                           pci_iov_virtfn_devfn(pdev, i));
@@ -209,10 +211,12 @@ struct pci_dn *add_dev_pci_data(struct pci_dev *pdev)
                }
 
                /* Create the EEH device for the VF */
+#ifdef CONFIG_EEH
                eeh_dev_init(pdn, pci_bus_to_host(pdev->bus));
                edev = pdn_to_eeh_dev(pdn);
                BUG_ON(!edev);
                edev->physfn = pdev;
+#endif /* CONFIG_EEH */
        }
 #endif /* CONFIG_PCI_IOV */
 
@@ -224,7 +228,6 @@ void remove_dev_pci_data(struct pci_dev *pdev)
 #ifdef CONFIG_PCI_IOV
        struct pci_dn *parent;
        struct pci_dn *pdn, *tmp;
-       struct eeh_dev *edev;
        int i;
 
        /*
@@ -260,18 +263,22 @@ void remove_dev_pci_data(struct pci_dev *pdev)
         * a batch mode.
         */
        for (i = 0; i < pci_sriov_get_totalvfs(pdev); i++) {
+               struct eeh_dev *edev __maybe_unused;
+
                list_for_each_entry_safe(pdn, tmp,
                        &parent->child_list, list) {
                        if (pdn->busno != pci_iov_virtfn_bus(pdev, i) ||
                            pdn->devfn != pci_iov_virtfn_devfn(pdev, i))
                                continue;
 
+#ifdef CONFIG_EEH
                        /* Release EEH device for the VF */
                        edev = pdn_to_eeh_dev(pdn);
                        if (edev) {
                                pdn->edev = NULL;
                                kfree(edev);
                        }
+#endif
 
                        if (!list_empty(&pdn->list))
                                list_del(&pdn->list);
-- 
2.7.4

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to