diff options
author | Linas Vepstas <linas@austin.ibm.com> | 2007-03-19 15:56:43 -0400 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-03-22 07:52:54 -0400 |
commit | 90375f53960f2b1e8d2a6af3324d440e3a977bf3 (patch) | |
tree | 6cf614ba65a5a9c24e44d880cec1846206d2ca52 /arch | |
parent | 5794dbcbab862e416c4ea4f10fda5e67f5565fd7 (diff) |
[POWERPC] EEH: handle reset state high
Some firmware versions will return a slot reset state of "1"
when a slot is EEH frozen. Recognize this as a state that can be
handled.
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/platforms/pseries/eeh.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 44aae9193a90..cb8a151bc9e7 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -386,7 +386,7 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev) | |||
386 | } | 386 | } |
387 | 387 | ||
388 | /* If not the kind of error we know about, punt. */ | 388 | /* If not the kind of error we know about, punt. */ |
389 | if (rets[0] != 2 && rets[0] != 4 && rets[0] != 5) { | 389 | if (rets[0] != 1 && rets[0] != 2 && rets[0] != 4 && rets[0] != 5) { |
390 | false_positives++; | 390 | false_positives++; |
391 | rc = 0; | 391 | rc = 0; |
392 | goto dn_unlock; | 392 | goto dn_unlock; |
@@ -401,7 +401,7 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev) | |||
401 | spin_unlock_irqrestore(&confirm_error_lock, flags); | 401 | spin_unlock_irqrestore(&confirm_error_lock, flags); |
402 | 402 | ||
403 | state = pci_channel_io_normal; | 403 | state = pci_channel_io_normal; |
404 | if ((rets[0] == 2) || (rets[0] == 4)) | 404 | if ((rets[0] == 1) || (rets[0] == 2) || (rets[0] == 4)) |
405 | state = pci_channel_io_frozen; | 405 | state = pci_channel_io_frozen; |
406 | if (rets[0] == 5) | 406 | if (rets[0] == 5) |
407 | state = pci_channel_io_perm_failure; | 407 | state = pci_channel_io_perm_failure; |
@@ -410,7 +410,7 @@ int eeh_dn_check_failure(struct device_node *dn, struct pci_dev *dev) | |||
410 | /* Most EEH events are due to device driver bugs. Having | 410 | /* Most EEH events are due to device driver bugs. Having |
411 | * a stack trace will help the device-driver authors figure | 411 | * a stack trace will help the device-driver authors figure |
412 | * out what happened. So print that out. */ | 412 | * out what happened. So print that out. */ |
413 | if (rets[0] != 5) dump_stack(); | 413 | dump_stack(); |
414 | return 1; | 414 | return 1; |
415 | 415 | ||
416 | dn_unlock: | 416 | dn_unlock: |