aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.h
diff options
context:
space:
mode:
authorbrking@us.ibm.com <brking@us.ibm.com>2005-11-17 10:35:12 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2005-12-13 20:10:58 -0500
commitce155ccecd4094e7b5e68058d26db691713240fc (patch)
tree1bc690d3f0555b05c3be587267c01135fa829563 /drivers/scsi/ipr.h
parented7e8ef7f12f5c3c8bbb85eeb0a1ded91c7c5dbf (diff)
[SCSI] ipr: Driver initialization fix for kexec/kdump
When kexec booting a kernel when the previous kernel did not call ipr's shutdown method, the ipr adapter does not get properly initialized, which can result in the ipr adapter completing commands issued by the previous kernel. Fix ipr to detect this scenario by reading the adapter's interrupt mask register and the microprocessor interrupt register. If the interrupt mask register indicates that interrupts are enabled or the reset alert bit is set when the card is probed, this means the card is in an unknown state and we hard reset the card. Signed-off-by: Brian King <brking@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r--drivers/scsi/ipr.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index 6bec673c925c..b639332131f1 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -36,8 +36,8 @@
36/* 36/*
37 * Literals 37 * Literals
38 */ 38 */
39#define IPR_DRIVER_VERSION "2.1.0" 39#define IPR_DRIVER_VERSION "2.1.1"
40#define IPR_DRIVER_DATE "(October 31, 2005)" 40#define IPR_DRIVER_DATE "(November 15, 2005)"
41 41
42/* 42/*
43 * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding 43 * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
@@ -922,6 +922,7 @@ struct ipr_ioa_cfg {
922 u8 dump_taken:1; 922 u8 dump_taken:1;
923 u8 allow_cmds:1; 923 u8 allow_cmds:1;
924 u8 allow_ml_add_del:1; 924 u8 allow_ml_add_del:1;
925 u8 needs_hard_reset:1;
925 926
926 enum ipr_cache_state cache_state; 927 enum ipr_cache_state cache_state;
927 u16 type; /* CCIN of the card */ 928 u16 type; /* CCIN of the card */