From 0b1f8d445b8cc5ac58786334f1ddaefa09fdf096 Mon Sep 17 00:00:00 2001 From: Wendy Xiong Date: Tue, 21 Jan 2014 12:16:39 -0600 Subject: [SCSI] ipr: Remove extended delay bit on GSCSI reads/writes ops This patch removes extended delay bit on GSCSI reads/writes ops, the performance will be significanly better. Signed-off-by: Wen Xiong Acked-by: Brian King Signed-off-by: James Bottomley --- drivers/scsi/ipr.h | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/scsi/ipr.h') diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 9ce38a22647..f66645c7349 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h @@ -1252,6 +1252,7 @@ struct ipr_resource_entry { u8 add_to_ml:1; u8 del_from_ml:1; u8 resetting_device:1; + u8 reset_occurred:1; u32 bus; /* AKA channel */ u32 target; /* AKA id */ -- cgit v1.2.3-18-g5258 From f94d9964626fd75b22878cc97ffebf287415f64e Mon Sep 17 00:00:00 2001 From: Wendy Xiong Date: Tue, 21 Jan 2014 12:16:40 -0600 Subject: [SCSI] ipr: Add new CCIN definition for new hardware support Add the appropriate definition and table entry for new hardware support. Signed-off-by: Wen Xiong Acked-by: Brian King Signed-off-by: James Bottomley --- drivers/scsi/ipr.h | 1 + 1 file changed, 1 insertion(+) (limited to 'drivers/scsi/ipr.h') diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index f66645c7349..c756ff0abc9 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h @@ -101,6 +101,7 @@ #define IPR_SUBS_DEV_ID_57D7 0x03FF #define IPR_SUBS_DEV_ID_57D8 0x03FE #define IPR_SUBS_DEV_ID_57D9 0x046D +#define IPR_SUBS_DEV_ID_57DA 0x04CA #define IPR_SUBS_DEV_ID_57EB 0x0474 #define IPR_SUBS_DEV_ID_57EC 0x0475 #define IPR_SUBS_DEV_ID_57ED 0x0499 -- cgit v1.2.3-18-g5258 From 6270e5932a01d6536dbce27782e8adf2180598d8 Mon Sep 17 00:00:00 2001 From: Brian King Date: Tue, 21 Jan 2014 12:16:41 -0600 Subject: [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 Signed-off-by: Brian King Signed-off-by: James Bottomley --- drivers/scsi/ipr.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'drivers/scsi/ipr.h') diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index c756ff0abc9..649d8f69714 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h @@ -231,6 +231,7 @@ #define IPR_WAIT_FOR_RESET_TIMEOUT (2 * HZ) #define IPR_CHECK_FOR_RESET_TIMEOUT (HZ / 10) #define IPR_WAIT_FOR_BIST_TIMEOUT (2 * HZ) +#define IPR_PCI_ERROR_RECOVERY_TIMEOUT (120 * HZ) #define IPR_PCI_RESET_TIMEOUT (HZ / 2) #define IPR_SIS32_DUMP_TIMEOUT (15 * HZ) #define IPR_SIS64_DUMP_TIMEOUT (40 * HZ) @@ -1443,6 +1444,7 @@ struct ipr_ioa_cfg { u8 dump_timeout:1; u8 cfg_locked:1; u8 clear_isr:1; + u8 probe_done:1; u8 revid; @@ -1521,6 +1523,7 @@ struct ipr_ioa_cfg { wait_queue_head_t reset_wait_q; wait_queue_head_t msi_wait_q; + wait_queue_head_t eeh_wait_q; struct ipr_dump *dump; enum ipr_sdt_state sdt_state; -- cgit v1.2.3-18-g5258 From 169b9ec83f0f1cf1e0c7876b41d04d66c28f16a0 Mon Sep 17 00:00:00 2001 From: Wendy Xiong Date: Wed, 12 Mar 2014 16:08:51 -0500 Subject: [SCSI] ipr: Format HCAM overlay ID 0x21 This patch adds formatting error overlay 0x21 to improve debug capabilities. [jejb: checkpatch fixes] Signed-off-by: Wen Xiong Acked-by: Brian King Signed-off-by: James Bottomley --- drivers/scsi/ipr.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'drivers/scsi/ipr.h') diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index 649d8f69714..c343afef4e1 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h @@ -899,6 +899,18 @@ struct ipr_hostrcb_type_01_error { __be32 ioa_data[236]; }__attribute__((packed, aligned (4))); +struct ipr_hostrcb_type_21_error { + __be32 wwn[4]; + u8 res_path[8]; + u8 primary_problem_desc[32]; + u8 second_problem_desc[32]; + __be32 sense_data[8]; + __be32 cdb[4]; + __be32 residual_trans_length; + __be32 length_of_error; + __be32 ioa_data[236]; +}__attribute__((packed, aligned (4))); + struct ipr_hostrcb_type_02_error { struct ipr_vpd ioa_vpd; struct ipr_vpd cfc_vpd; @@ -1128,6 +1140,7 @@ struct ipr_hostrcb64_error { struct ipr_hostrcb_type_ff_error type_ff_error; struct ipr_hostrcb_type_12_error type_12_error; struct ipr_hostrcb_type_17_error type_17_error; + struct ipr_hostrcb_type_21_error type_21_error; struct ipr_hostrcb_type_23_error type_23_error; struct ipr_hostrcb_type_24_error type_24_error; struct ipr_hostrcb_type_30_error type_30_error; @@ -1171,6 +1184,7 @@ struct ipr_hcam { #define IPR_HOST_RCB_OVERLAY_ID_16 0x16 #define IPR_HOST_RCB_OVERLAY_ID_17 0x17 #define IPR_HOST_RCB_OVERLAY_ID_20 0x20 +#define IPR_HOST_RCB_OVERLAY_ID_21 0x21 #define IPR_HOST_RCB_OVERLAY_ID_23 0x23 #define IPR_HOST_RCB_OVERLAY_ID_24 0x24 #define IPR_HOST_RCB_OVERLAY_ID_26 0x26 -- cgit v1.2.3-18-g5258 From 5eeac3e99ae220aea787527d1bfd9e846adf9fac Mon Sep 17 00:00:00 2001 From: Wendy Xiong Date: Wed, 12 Mar 2014 16:08:52 -0500 Subject: [SCSI] ipr: Add new CCIN definition for Grand Canyon support Add the appropriate definition and table entry for new hardware support. Signed-off-by: Wen Xiong Acked-by: Brian King Signed-off-by: James Bottomley --- drivers/scsi/ipr.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'drivers/scsi/ipr.h') diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h index c343afef4e1..31ed126f714 100644 --- a/drivers/scsi/ipr.h +++ b/drivers/scsi/ipr.h @@ -108,6 +108,9 @@ #define IPR_SUBS_DEV_ID_57EE 0x049A #define IPR_SUBS_DEV_ID_57EF 0x049B #define IPR_SUBS_DEV_ID_57F0 0x049C +#define IPR_SUBS_DEV_ID_2CCA 0x04C7 +#define IPR_SUBS_DEV_ID_2CD2 0x04C8 +#define IPR_SUBS_DEV_ID_2CCD 0x04C9 #define IPR_NAME "ipr" /* -- cgit v1.2.3-18-g5258