diff options
author | Linas Vepstas <linas@austin.ibm.com> | 2007-03-19 15:51:00 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-03-22 07:52:49 -0400 |
commit | 39d16e295966a1f0025a65eaab4cb59fe5ba8c17 (patch) | |
tree | dbf70b5bb113fcada2afcee48cec1fbe11224c12 | |
parent | e91948fd84086020072e022d5463036033d449c1 (diff) |
[POWERPC] EEH: modify order of EEH state checking
Change the order in which pci error state is examined;
the "capabilites" is not valid if "reset state" is 5.
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 6cedbc002e0f..3d9f5c1113aa 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -367,6 +367,14 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev) | |||
367 | goto dn_unlock; | 367 | goto dn_unlock; |
368 | } | 368 | } |
369 | 369 | ||
370 | /* Note that config-io to empty slots may fail; | ||
371 | * they are empty when they don't have children. */ | ||
372 | if ((rets[0] == 5) && (dn->child == NULL)) { | ||
373 | false_positives++; | ||
374 | rc = 0; | ||
375 | goto dn_unlock; | ||
376 | } | ||
377 | |||
370 | /* If EEH is not supported on this device, punt. */ | 378 | /* If EEH is not supported on this device, punt. */ |
371 | if (rets[1] != 1) { | 379 | if (rets[1] != 1) { |
372 | printk(KERN_WARNING "EEH: event on unsupported device, rc=%d dn=%s\n", | 380 | printk(KERN_WARNING "EEH: event on unsupported device, rc=%d dn=%s\n", |
@@ -383,14 +391,6 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev) | |||
383 | goto dn_unlock; | 391 | goto dn_unlock; |
384 | } | 392 | } |
385 | 393 | ||
386 | /* Note that config-io to empty slots may fail; | ||
387 | * we recognize empty because they don't have children. */ | ||
388 | if ((rets[0] == 5) && (dn->child == NULL)) { | ||
389 | false_positives++; | ||
390 | rc = 0; | ||
391 | goto dn_unlock; | ||
392 | } | ||
393 | |||
394 | slot_resets++; | 394 | slot_resets++; |
395 | 395 | ||
396 | /* Avoid repeated reports of this failure, including problems | 396 | /* Avoid repeated reports of this failure, including problems |