aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2007-03-19 15:56:43 -0400
committerPaul Mackerras <paulus@samba.org>2007-03-22 07:52:54 -0400
commit90375f53960f2b1e8d2a6af3324d440e3a977bf3 (patch)
tree6cf614ba65a5a9c24e44d880cec1846206d2ca52 /arch
parent5794dbcbab862e416c4ea4f10fda5e67f5565fd7 (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.c6
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
416dn_unlock: 416dn_unlock: