aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.h
diff options
context:
space:
mode:
authorBrian King <brking@linux.vnet.ibm.com>2014-01-21 13:16:41 -0500
committerJames Bottomley <JBottomley@Parallels.com>2014-03-19 18:04:39 -0400
commit6270e5932a01d6536dbce27782e8adf2180598d8 (patch)
treebd5bde920c0a703b5798783357c7675e02ca31c0 /drivers/scsi/ipr.h
parentf94d9964626fd75b22878cc97ffebf287415f64e (diff)
[SCSI] ipr: Handle early EEH
If, when the ipr driver loads, the adapter is in an EEH error state, it will currently oops and not be able to recover, as it attempts to access memory that has not yet been allocated. We've seen this occur in some kexec scenarios. The following patch fixes the oops and also allows the driver to recover from these probe time EEH errors. [jejb: checkpatch fix] Signed-off-by: Wen Xiong <wenxiong@linux.vnet.ibm.com> Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r--drivers/scsi/ipr.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index c756ff0abc96..649d8f697147 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -231,6 +231,7 @@
231#define IPR_WAIT_FOR_RESET_TIMEOUT (2 * HZ) 231#define IPR_WAIT_FOR_RESET_TIMEOUT (2 * HZ)
232#define IPR_CHECK_FOR_RESET_TIMEOUT (HZ / 10) 232#define IPR_CHECK_FOR_RESET_TIMEOUT (HZ / 10)
233#define IPR_WAIT_FOR_BIST_TIMEOUT (2 * HZ) 233#define IPR_WAIT_FOR_BIST_TIMEOUT (2 * HZ)
234#define IPR_PCI_ERROR_RECOVERY_TIMEOUT (120 * HZ)
234#define IPR_PCI_RESET_TIMEOUT (HZ / 2) 235#define IPR_PCI_RESET_TIMEOUT (HZ / 2)
235#define IPR_SIS32_DUMP_TIMEOUT (15 * HZ) 236#define IPR_SIS32_DUMP_TIMEOUT (15 * HZ)
236#define IPR_SIS64_DUMP_TIMEOUT (40 * HZ) 237#define IPR_SIS64_DUMP_TIMEOUT (40 * HZ)
@@ -1443,6 +1444,7 @@ struct ipr_ioa_cfg {
1443 u8 dump_timeout:1; 1444 u8 dump_timeout:1;
1444 u8 cfg_locked:1; 1445 u8 cfg_locked:1;
1445 u8 clear_isr:1; 1446 u8 clear_isr:1;
1447 u8 probe_done:1;
1446 1448
1447 u8 revid; 1449 u8 revid;
1448 1450
@@ -1521,6 +1523,7 @@ struct ipr_ioa_cfg {
1521 1523
1522 wait_queue_head_t reset_wait_q; 1524 wait_queue_head_t reset_wait_q;
1523 wait_queue_head_t msi_wait_q; 1525 wait_queue_head_t msi_wait_q;
1526 wait_queue_head_t eeh_wait_q;
1524 1527
1525 struct ipr_dump *dump; 1528 struct ipr_dump *dump;
1526 enum ipr_sdt_state sdt_state; 1529 enum ipr_sdt_state sdt_state;