summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid/megaraid_mbox.h
diff options
context:
space:
mode:
authorJu, Seokmann <Seokmann.Ju@lsil.com>2006-04-27 02:33:06 -0700
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-04-27 14:08:53 -0500
commitc005fb4fb2d23ba29ad21dee5042b2f8451ca8ba (patch)
tree26cd8703ee65d01e611fb0990f502c56abc098b6 /drivers/scsi/megaraid/megaraid_mbox.h
parent509e5e5d206ff7ba08011b61a882d09369ec20c3 (diff)
downloadlinux-c005fb4fb2d23ba29ad21dee5042b2f8451ca8ba.tar.gz
linux-c005fb4fb2d23ba29ad21dee5042b2f8451ca8ba.tar.bz2
linux-c005fb4fb2d23ba29ad21dee5042b2f8451ca8ba.zip
[SCSI] megaraid_{mm,mbox}: fix a bug in reset handler
When abort failed, the driver gets reset handleer called. In the reset handler, driver calls 'scsi_done()' callback for same SCSI command packet (struct scsi_cmnd) multiple times if there are multiple SCSI command packet in the pend_list. More over, if there are entry in the pend_lsit with IOCTL packet associated, the driver returns it to wrong free_list so that, in turn, the driver could end up with 'NULL pointer dereference..' during I/O command building with incorrect resource. Also, the patch contains several minor/cosmetic changes besides this. Signed-off-by: Seokmann Ju <seokmann.ju@lsil.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/megaraid/megaraid_mbox.h')
-rw-r--r--drivers/scsi/megaraid/megaraid_mbox.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/scsi/megaraid/megaraid_mbox.h b/drivers/scsi/megaraid/megaraid_mbox.h
index 882fb1a0b575..868fb0ec93e7 100644
--- a/drivers/scsi/megaraid/megaraid_mbox.h
+++ b/drivers/scsi/megaraid/megaraid_mbox.h
@@ -21,8 +21,8 @@
#include "megaraid_ioctl.h"
-#define MEGARAID_VERSION "2.20.4.7"
-#define MEGARAID_EXT_VERSION "(Release Date: Mon Nov 14 12:27:22 EST 2005)"
+#define MEGARAID_VERSION "2.20.4.8"
+#define MEGARAID_EXT_VERSION "(Release Date: Mon Apr 11 12:27:22 EST 2006)"
/*
@@ -100,6 +100,9 @@
#define MBOX_BUSY_WAIT 10 // max usec to wait for busy mailbox
#define MBOX_RESET_WAIT 180 // wait these many seconds in reset
#define MBOX_RESET_EXT_WAIT 120 // extended wait reset
+#define MBOX_SYNC_WAIT_CNT 0xFFFF // wait loop index for synchronous mode
+
+#define MBOX_SYNC_DELAY_200 200 // 200 micro-seconds
/*
* maximum transfer that can happen through the firmware commands issued