[PATCH] powerpc/pseries: Cleanup device name printing.
authorLinas Vepstas <linas@austin.ibm.com>
Fri, 24 Mar 2006 23:11:29 +0000 (17:11 -0600)
committerPaul Mackerras <paulus@samba.org>
Mon, 27 Mar 2006 03:48:46 +0000 (14:48 +1100)
This avoids printk'ing a NULL string.

Signed-off-by: Linas Vepstas <linas@linas.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/platforms/pseries/eeh_driver.c

index b811d5ff92feea02696adabf0313c9c45a7c40f2..cc2495a0cdd58754db004f3d34fe353c4dc65981 100644 (file)
@@ -257,6 +257,7 @@ void handle_eeh_events (struct eeh_event *event)
        struct pci_bus *frozen_bus;
        int rc = 0;
        enum pci_ers_result result = PCI_ERS_RESULT_NONE;
+       const char *pci_str, *drv_str;
 
        frozen_dn = find_device_pe(event->dn);
        frozen_bus = pcibios_find_pci_bus(frozen_dn);
@@ -291,6 +292,13 @@ void handle_eeh_events (struct eeh_event *event)
 
        frozen_pdn = PCI_DN(frozen_dn);
        frozen_pdn->eeh_freeze_count++;
+
+       pci_str = pci_name (frozen_pdn->pcidev);
+       drv_str = pcid_name (frozen_pdn->pcidev);
+       if (!pci_str) {
+               pci_str = pci_name (event->dev);
+               drv_str = pcid_name (event->dev);
+       }
        
        if (frozen_pdn->eeh_freeze_count > EEH_MAX_ALLOWED_FREEZES)
                goto hard_fail;
@@ -306,9 +314,7 @@ void handle_eeh_events (struct eeh_event *event)
        eeh_slot_error_detail(frozen_pdn, 1 /* Temporary Error */);
        printk(KERN_WARNING
           "EEH: This PCI device has failed %d times since last reboot: %s - %s\n",
-               frozen_pdn->eeh_freeze_count,
-               pci_name (frozen_pdn->pcidev), 
-               pcid_name(frozen_pdn->pcidev));
+               frozen_pdn->eeh_freeze_count, drv_str, pci_str);
 
        /* Walk the various device drivers attached to this slot through
         * a reset sequence, giving each an opportunity to do what it needs
@@ -360,9 +366,7 @@ hard_fail:
           "EEH: PCI device %s - %s has failed %d times \n"
           "and has been permanently disabled.  Please try reseating\n"
           "this device or replacing it.\n",
-               pci_name (frozen_pdn->pcidev), 
-               pcid_name(frozen_pdn->pcidev), 
-               frozen_pdn->eeh_freeze_count);
+               drv_str, pci_str, frozen_pdn->eeh_freeze_count);
 
        eeh_slot_error_detail(frozen_pdn, 2 /* Permanent Error */);