aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/powerpc/platforms/pseries/eeh_driver.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c
index 57e025e84ab4..06b89b56d0e9 100644
--- a/arch/powerpc/platforms/pseries/eeh_driver.c
+++ b/arch/powerpc/platforms/pseries/eeh_driver.c
@@ -354,13 +354,6 @@ struct pci_dn * handle_eeh_events (struct eeh_event *event)
354 if (frozen_pdn->eeh_freeze_count > EEH_MAX_ALLOWED_FREEZES) 354 if (frozen_pdn->eeh_freeze_count > EEH_MAX_ALLOWED_FREEZES)
355 goto excess_failures; 355 goto excess_failures;
356 356
357 /* Get the current PCI slot state. */
358 rc = eeh_wait_for_slot_status (frozen_pdn, MAX_WAIT_FOR_RECOVERY*1000);
359 if (rc < 0) {
360 printk(KERN_WARNING "EEH: Permanent failure\n");
361 goto hard_fail;
362 }
363
364 printk(KERN_WARNING 357 printk(KERN_WARNING
365 "EEH: This PCI device has failed %d times in the last hour:\n", 358 "EEH: This PCI device has failed %d times in the last hour:\n",
366 frozen_pdn->eeh_freeze_count); 359 frozen_pdn->eeh_freeze_count);
@@ -376,6 +369,14 @@ struct pci_dn * handle_eeh_events (struct eeh_event *event)
376 */ 369 */
377 pci_walk_bus(frozen_bus, eeh_report_error, &result); 370 pci_walk_bus(frozen_bus, eeh_report_error, &result);
378 371
372 /* Get the current PCI slot state. This can take a long time,
373 * sometimes over 3 seconds for certain systems. */
374 rc = eeh_wait_for_slot_status (frozen_pdn, MAX_WAIT_FOR_RECOVERY*1000);
375 if (rc < 0) {
376 printk(KERN_WARNING "EEH: Permanent failure\n");
377 goto hard_fail;
378 }
379
379 /* Since rtas may enable MMIO when posting the error log, 380 /* Since rtas may enable MMIO when posting the error log,
380 * don't post the error log until after all dev drivers 381 * don't post the error log until after all dev drivers
381 * have been informed. 382 * have been informed.