diff options
Diffstat (limited to 'arch/powerpc/kernel/eeh_driver.c')
-rw-r--r-- | arch/powerpc/kernel/eeh_driver.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c index 6535936bdf27..b17e793ba67e 100644 --- a/arch/powerpc/kernel/eeh_driver.c +++ b/arch/powerpc/kernel/eeh_driver.c | |||
@@ -528,13 +528,11 @@ int eeh_pe_reset_and_recover(struct eeh_pe *pe) | |||
528 | eeh_pe_dev_traverse(pe, eeh_report_error, &result); | 528 | eeh_pe_dev_traverse(pe, eeh_report_error, &result); |
529 | 529 | ||
530 | /* Issue reset */ | 530 | /* Issue reset */ |
531 | eeh_pe_state_mark(pe, EEH_PE_CFG_BLOCKED); | ||
532 | ret = eeh_reset_pe(pe); | 531 | ret = eeh_reset_pe(pe); |
533 | if (ret) { | 532 | if (ret) { |
534 | eeh_pe_state_clear(pe, EEH_PE_RECOVERING | EEH_PE_CFG_BLOCKED); | 533 | eeh_pe_state_clear(pe, EEH_PE_RECOVERING); |
535 | return ret; | 534 | return ret; |
536 | } | 535 | } |
537 | eeh_pe_state_clear(pe, EEH_PE_CFG_BLOCKED); | ||
538 | 536 | ||
539 | /* Unfreeze the PE */ | 537 | /* Unfreeze the PE */ |
540 | ret = eeh_clear_pe_frozen_state(pe, true); | 538 | ret = eeh_clear_pe_frozen_state(pe, true); |
@@ -601,19 +599,15 @@ static int eeh_reset_device(struct eeh_pe *pe, struct pci_bus *bus) | |||
601 | * config accesses. So we prefer to block them. However, controlled | 599 | * config accesses. So we prefer to block them. However, controlled |
602 | * PCI config accesses initiated from EEH itself are allowed. | 600 | * PCI config accesses initiated from EEH itself are allowed. |
603 | */ | 601 | */ |
604 | eeh_pe_state_mark(pe, EEH_PE_CFG_BLOCKED); | ||
605 | rc = eeh_reset_pe(pe); | 602 | rc = eeh_reset_pe(pe); |
606 | if (rc) { | 603 | if (rc) |
607 | eeh_pe_state_clear(pe, EEH_PE_CFG_BLOCKED); | ||
608 | return rc; | 604 | return rc; |
609 | } | ||
610 | 605 | ||
611 | pci_lock_rescan_remove(); | 606 | pci_lock_rescan_remove(); |
612 | 607 | ||
613 | /* Restore PE */ | 608 | /* Restore PE */ |
614 | eeh_ops->configure_bridge(pe); | 609 | eeh_ops->configure_bridge(pe); |
615 | eeh_pe_restore_bars(pe); | 610 | eeh_pe_restore_bars(pe); |
616 | eeh_pe_state_clear(pe, EEH_PE_CFG_BLOCKED); | ||
617 | 611 | ||
618 | /* Clear frozen state */ | 612 | /* Clear frozen state */ |
619 | rc = eeh_clear_pe_frozen_state(pe, false); | 613 | rc = eeh_clear_pe_frozen_state(pe, false); |