diff options
Diffstat (limited to 'arch/powerpc/platforms/pseries/eeh.c')
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 56a022b03651..6d4323025793 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -537,7 +537,7 @@ static void eeh_reset_pe_once(struct eeh_pe *pe) | |||
537 | * pci slot reset line is dropped. Make sure we don't miss | 537 | * pci slot reset line is dropped. Make sure we don't miss |
538 | * these, and clear the flag now. | 538 | * these, and clear the flag now. |
539 | */ | 539 | */ |
540 | eeh_pe_state_clear(pe, EEH_MODE_ISOLATED); | 540 | eeh_pe_state_clear(pe, EEH_PE_ISOLATED); |
541 | 541 | ||
542 | eeh_ops->reset(pe, EEH_RESET_DEACTIVATE); | 542 | eeh_ops->reset(pe, EEH_RESET_DEACTIVATE); |
543 | 543 | ||
@@ -625,9 +625,6 @@ static void *eeh_early_enable(struct device_node *dn, void *data) | |||
625 | 625 | ||
626 | edev->class_code = 0; | 626 | edev->class_code = 0; |
627 | edev->mode = 0; | 627 | edev->mode = 0; |
628 | edev->check_count = 0; | ||
629 | edev->freeze_count = 0; | ||
630 | edev->false_positives = 0; | ||
631 | 628 | ||
632 | if (!of_device_is_available(dn)) | 629 | if (!of_device_is_available(dn)) |
633 | return NULL; | 630 | return NULL; |
@@ -637,10 +634,8 @@ static void *eeh_early_enable(struct device_node *dn, void *data) | |||
637 | return NULL; | 634 | return NULL; |
638 | 635 | ||
639 | /* There is nothing to check on PCI to ISA bridges */ | 636 | /* There is nothing to check on PCI to ISA bridges */ |
640 | if (dn->type && !strcmp(dn->type, "isa")) { | 637 | if (dn->type && !strcmp(dn->type, "isa")) |
641 | edev->mode |= EEH_MODE_NOCHECK; | ||
642 | return NULL; | 638 | return NULL; |
643 | } | ||
644 | edev->class_code = *class_code; | 639 | edev->class_code = *class_code; |
645 | 640 | ||
646 | /* Ok... see if this device supports EEH. Some do, some don't, | 641 | /* Ok... see if this device supports EEH. Some do, some don't, |
@@ -679,7 +674,6 @@ static void *eeh_early_enable(struct device_node *dn, void *data) | |||
679 | 674 | ||
680 | if (enable) { | 675 | if (enable) { |
681 | eeh_subsystem_enabled = 1; | 676 | eeh_subsystem_enabled = 1; |
682 | edev->mode |= EEH_MODE_SUPPORTED; | ||
683 | 677 | ||
684 | eeh_add_to_parent_pe(edev); | 678 | eeh_add_to_parent_pe(edev); |
685 | 679 | ||
@@ -692,9 +686,8 @@ static void *eeh_early_enable(struct device_node *dn, void *data) | |||
692 | * EEH parent, in which case we mark it as supported. | 686 | * EEH parent, in which case we mark it as supported. |
693 | */ | 687 | */ |
694 | if (dn->parent && of_node_to_eeh_dev(dn->parent) && | 688 | if (dn->parent && of_node_to_eeh_dev(dn->parent) && |
695 | (of_node_to_eeh_dev(dn->parent)->mode & EEH_MODE_SUPPORTED)) { | 689 | of_node_to_eeh_dev(dn->parent)->pe) { |
696 | /* Parent supports EEH. */ | 690 | /* Parent supports EEH. */ |
697 | edev->mode |= EEH_MODE_SUPPORTED; | ||
698 | edev->config_addr = of_node_to_eeh_dev(dn->parent)->config_addr; | 691 | edev->config_addr = of_node_to_eeh_dev(dn->parent)->config_addr; |
699 | edev->pe_config_addr = of_node_to_eeh_dev(dn->parent)->pe_config_addr; | 692 | edev->pe_config_addr = of_node_to_eeh_dev(dn->parent)->pe_config_addr; |
700 | 693 | ||