}
 }
 
-struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
-                                 struct device_node *node,
-                                 struct pci_bus *bus, int devfn)
+static struct pci_dev *of_create_pci_dev(struct pci_pbm_info *pbm,
+                                        struct device_node *node,
+                                        struct pci_bus *bus, int devfn)
 {
        struct dev_archdata *sd;
        struct of_device *op;
 int arch_setup_msi_irq(struct pci_dev *pdev, struct msi_desc *desc)
 {
        struct pci_pbm_info *pbm = pdev->dev.archdata.host_controller;
-       int virt_irq;
+       unsigned int virt_irq;
 
        if (!pbm->setup_msi_irq)
                return -EINVAL;
        struct pci_dev *pdev = entry->dev;
        struct pci_pbm_info *pbm = pdev->dev.archdata.host_controller;
 
-       if (!pbm->teardown_msi_irq)
-               return;
-
-       return pbm->teardown_msi_irq(virt_irq, pdev);
+       if (pbm->teardown_msi_irq)
+               pbm->teardown_msi_irq(virt_irq, pdev);
 }
 #endif /* !(CONFIG_PCI_MSI) */
 
 
 extern struct pci_ops sun4u_pci_ops;
 extern struct pci_ops sun4v_pci_ops;
 
+extern volatile int pci_poke_in_progress;
+extern volatile int pci_poke_cpu;
+extern volatile int pci_poke_faulted;
+
 #endif /* !(PCI_IMPL_H) */
 
 }
 
 #ifdef CONFIG_PCI
-/* This is really pathetic... */
-extern volatile int pci_poke_in_progress;
-extern volatile int pci_poke_cpu;
-extern volatile int pci_poke_faulted;
+#include "pci_impl.h"
 #endif
 
 /* When access exceptions happen, we must do this. */