[XFS] Fix merge failures
[pandora-kernel.git] / arch / powerpc / platforms / pseries / eeh.c
index 54816d7..989d646 100644 (file)
@@ -21,6 +21,8 @@
  * Please address comments and feedback to Linas Vepstas <linas@austin.ibm.com>
  */
 
+#undef DEBUG
+
 #include <linux/delay.h>
 #include <linux/init.h>
 #include <linux/list.h>
@@ -488,10 +490,8 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev)
        if (!(pdn->eeh_mode & EEH_MODE_SUPPORTED) ||
            pdn->eeh_mode & EEH_MODE_NOCHECK) {
                ignored_check++;
-#ifdef DEBUG
-               printk ("EEH:ignored check (%x) for %s %s\n", 
-                       pdn->eeh_mode, pci_name (dev), dn->full_name);
-#endif
+               pr_debug("EEH: Ignored check (%x) for %s %s\n",
+                        pdn->eeh_mode, pci_name (dev), dn->full_name);
                return 0;
        }
 
@@ -1014,10 +1014,9 @@ static void *early_enable_eeh(struct device_node *dn, void *data)
                        eeh_subsystem_enabled = 1;
                        pdn->eeh_mode |= EEH_MODE_SUPPORTED;
 
-#ifdef DEBUG
-                       printk(KERN_DEBUG "EEH: %s: eeh enabled, config=%x pe_config=%x\n",
-                              dn->full_name, pdn->eeh_config_addr, pdn->eeh_pe_config_addr);
-#endif
+                       pr_debug("EEH: %s: eeh enabled, config=%x pe_config=%x\n",
+                                dn->full_name, pdn->eeh_config_addr,
+                                pdn->eeh_pe_config_addr);
                } else {
 
                        /* This device doesn't support EEH, but it may have an
@@ -1161,13 +1160,17 @@ static void eeh_add_device_late(struct pci_dev *dev)
        if (!dev || !eeh_subsystem_enabled)
                return;
 
-#ifdef DEBUG
-       printk(KERN_DEBUG "EEH: adding device %s\n", pci_name(dev));
-#endif
+       pr_debug("EEH: Adding device %s\n", pci_name(dev));
 
-       pci_dev_get (dev);
        dn = pci_device_to_OF_node(dev);
        pdn = PCI_DN(dn);
+       if (pdn->pcidev == dev) {
+               pr_debug("EEH: Already referenced !\n");
+               return;
+       }
+       WARN_ON(pdn->pcidev);
+
+       pci_dev_get (dev);
        pdn->pcidev = dev;
 
        pci_addr_cache_insert_device(dev);
@@ -1206,17 +1209,18 @@ static void eeh_remove_device(struct pci_dev *dev)
                return;
 
        /* Unregister the device with the EEH/PCI address search system */
-#ifdef DEBUG
-       printk(KERN_DEBUG "EEH: remove device %s\n", pci_name(dev));
-#endif
-       pci_addr_cache_remove_device(dev);
-       eeh_sysfs_remove_device(dev);
+       pr_debug("EEH: Removing device %s\n", pci_name(dev));
 
        dn = pci_device_to_OF_node(dev);
-       if (PCI_DN(dn)->pcidev) {
-               PCI_DN(dn)->pcidev = NULL;
-               pci_dev_put (dev);
+       if (PCI_DN(dn)->pcidev == NULL) {
+               pr_debug("EEH: Not referenced !\n");
+               return;
        }
+       PCI_DN(dn)->pcidev = NULL;
+       pci_dev_put (dev);
+
+       pci_addr_cache_remove_device(dev);
+       eeh_sysfs_remove_device(dev);
 }
 
 void eeh_remove_bus_device(struct pci_dev *dev)