aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message')
-rw-r--r--drivers/message/fusion/lsi/mpi_log_fc.h4
-rw-r--r--drivers/message/fusion/lsi/mpi_log_sas.h14
-rw-r--r--drivers/message/fusion/mptbase.c28
-rw-r--r--drivers/message/fusion/mptbase.h4
-rw-r--r--drivers/message/fusion/mptctl.c4
-rw-r--r--drivers/message/fusion/mptsas.c12
-rw-r--r--drivers/message/fusion/mptscsih.c13
-rw-r--r--drivers/message/fusion/mptspi.c22
-rw-r--r--drivers/message/i2o/README2
-rw-r--r--drivers/message/i2o/README.ioctl2
-rw-r--r--drivers/message/i2o/device.c8
-rw-r--r--drivers/message/i2o/i2o_block.c5
-rw-r--r--drivers/message/i2o/i2o_block.h2
-rw-r--r--drivers/message/i2o/i2o_scsi.c6
14 files changed, 70 insertions, 56 deletions
diff --git a/drivers/message/fusion/lsi/mpi_log_fc.h b/drivers/message/fusion/lsi/mpi_log_fc.h
index face6e7acc72..03be8b217709 100644
--- a/drivers/message/fusion/lsi/mpi_log_fc.h
+++ b/drivers/message/fusion/lsi/mpi_log_fc.h
@@ -38,8 +38,8 @@ typedef enum _MpiIocLogInfoFc
38{ 38{
39 MPI_IOCLOGINFO_FC_INIT_BASE = 0x20000000, 39 MPI_IOCLOGINFO_FC_INIT_BASE = 0x20000000,
40 MPI_IOCLOGINFO_FC_INIT_ERROR_OUT_OF_ORDER_FRAME = 0x20000001, /* received an out of order frame - unsupported */ 40 MPI_IOCLOGINFO_FC_INIT_ERROR_OUT_OF_ORDER_FRAME = 0x20000001, /* received an out of order frame - unsupported */
41 MPI_IOCLOGINFO_FC_INIT_ERROR_BAD_START_OF_FRAME = 0x20000002, /* Bad Rx Frame, bad start of frame primative */ 41 MPI_IOCLOGINFO_FC_INIT_ERROR_BAD_START_OF_FRAME = 0x20000002, /* Bad Rx Frame, bad start of frame primitive */
42 MPI_IOCLOGINFO_FC_INIT_ERROR_BAD_END_OF_FRAME = 0x20000003, /* Bad Rx Frame, bad end of frame primative */ 42 MPI_IOCLOGINFO_FC_INIT_ERROR_BAD_END_OF_FRAME = 0x20000003, /* Bad Rx Frame, bad end of frame primitive */
43 MPI_IOCLOGINFO_FC_INIT_ERROR_OVER_RUN = 0x20000004, /* Bad Rx Frame, overrun */ 43 MPI_IOCLOGINFO_FC_INIT_ERROR_OVER_RUN = 0x20000004, /* Bad Rx Frame, overrun */
44 MPI_IOCLOGINFO_FC_INIT_ERROR_RX_OTHER = 0x20000005, /* Other errors caught by IOC which require retries */ 44 MPI_IOCLOGINFO_FC_INIT_ERROR_RX_OTHER = 0x20000005, /* Other errors caught by IOC which require retries */
45 MPI_IOCLOGINFO_FC_INIT_ERROR_SUBPROC_DEAD = 0x20000006, /* Main processor could not initialize sub-processor */ 45 MPI_IOCLOGINFO_FC_INIT_ERROR_SUBPROC_DEAD = 0x20000006, /* Main processor could not initialize sub-processor */
diff --git a/drivers/message/fusion/lsi/mpi_log_sas.h b/drivers/message/fusion/lsi/mpi_log_sas.h
index 8b04810df469..f62960b5d527 100644
--- a/drivers/message/fusion/lsi/mpi_log_sas.h
+++ b/drivers/message/fusion/lsi/mpi_log_sas.h
@@ -56,9 +56,9 @@
56#define IOP_LOGINFO_CODE_FWUPLOAD_NO_FLASH_AVAILABLE (0x0003E000) /* Tried to upload from flash, but there is none */ 56#define IOP_LOGINFO_CODE_FWUPLOAD_NO_FLASH_AVAILABLE (0x0003E000) /* Tried to upload from flash, but there is none */
57#define IOP_LOGINFO_CODE_FWUPLOAD_UNKNOWN_IMAGE_TYPE (0x0003E001) /* ImageType field contents were invalid */ 57#define IOP_LOGINFO_CODE_FWUPLOAD_UNKNOWN_IMAGE_TYPE (0x0003E001) /* ImageType field contents were invalid */
58#define IOP_LOGINFO_CODE_FWUPLOAD_WRONG_IMAGE_SIZE (0x0003E002) /* ImageSize field in TCSGE was bad/offset in MfgPg 4 was wrong */ 58#define IOP_LOGINFO_CODE_FWUPLOAD_WRONG_IMAGE_SIZE (0x0003E002) /* ImageSize field in TCSGE was bad/offset in MfgPg 4 was wrong */
59#define IOP_LOGINFO_CODE_FWUPLOAD_ENTIRE_FLASH_UPLOAD_FAILED (0x0003E003) /* Error occured while attempting to upload the entire flash */ 59#define IOP_LOGINFO_CODE_FWUPLOAD_ENTIRE_FLASH_UPLOAD_FAILED (0x0003E003) /* Error occurred while attempting to upload the entire flash */
60#define IOP_LOGINFO_CODE_FWUPLOAD_REGION_UPLOAD_FAILED (0x0003E004) /* Error occured while attempting to upload single flash region */ 60#define IOP_LOGINFO_CODE_FWUPLOAD_REGION_UPLOAD_FAILED (0x0003E004) /* Error occurred while attempting to upload single flash region */
61#define IOP_LOGINFO_CODE_FWUPLOAD_DMA_FAILURE (0x0003E005) /* Problem occured while DMAing FW to host memory */ 61#define IOP_LOGINFO_CODE_FWUPLOAD_DMA_FAILURE (0x0003E005) /* Problem occurred while DMAing FW to host memory */
62 62
63#define IOP_LOGINFO_CODE_DIAG_MSG_ERROR (0x00040000) /* Error handling diag msg - or'd with diag status */ 63#define IOP_LOGINFO_CODE_DIAG_MSG_ERROR (0x00040000) /* Error handling diag msg - or'd with diag status */
64 64
@@ -187,8 +187,8 @@
187#define PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD (0x00005000) 187#define PL_LOGINFO_SUB_CODE_BREAK_ON_INCOMPLETE_BREAK_RCVD (0x00005000)
188 188
189#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */ 189#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_FRAME_FAILURE (0x00200000) /* Can't get SMP Frame */
190#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occured on SMP Read */ 190#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_READ_ERROR (0x00200010) /* Error occurred on SMP Read */
191#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR (0x00200020) /* Error occured on SMP Write */ 191#define PL_LOGINFO_CODE_ENCL_MGMT_SMP_WRITE_ERROR (0x00200020) /* Error occurred on SMP Write */
192#define PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL (0x00200040) /* Encl Mgmt services not available for this WWID */ 192#define PL_LOGINFO_CODE_ENCL_MGMT_NOT_SUPPORTED_ON_ENCL (0x00200040) /* Encl Mgmt services not available for this WWID */
193#define PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED (0x00200050) /* Address Mode not suppored */ 193#define PL_LOGINFO_CODE_ENCL_MGMT_ADDR_MODE_NOT_SUPPORTED (0x00200050) /* Address Mode not suppored */
194#define PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM (0x00200060) /* Invalid Slot Number in SEP Msg */ 194#define PL_LOGINFO_CODE_ENCL_MGMT_BAD_SLOT_NUM (0x00200060) /* Invalid Slot Number in SEP Msg */
@@ -207,8 +207,8 @@
207#define PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE (0x00200103) /* SEP NACK'd, it is busy */ 207#define PL_LOGINFO_DA_SEP_RECEIVED_NACK_FROM_SLAVE (0x00200103) /* SEP NACK'd, it is busy */
208#define PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK (0x00200104) /* SEP didn't rcv. ACK (Last Rcvd Bit = 1) */ 208#define PL_LOGINFO_DA_SEP_DID_NOT_RECEIVE_ACK (0x00200104) /* SEP didn't rcv. ACK (Last Rcvd Bit = 1) */
209#define PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM (0x00200105) /* SEP stopped or sent bad chksum in Hdr */ 209#define PL_LOGINFO_DA_SEP_BAD_STATUS_HDR_CHKSUM (0x00200105) /* SEP stopped or sent bad chksum in Hdr */
210#define PL_LOGINFO_DA_SEP_STOP_ON_DATA (0x00200106) /* SEP stopped while transfering data */ 210#define PL_LOGINFO_DA_SEP_STOP_ON_DATA (0x00200106) /* SEP stopped while transferring data */
211#define PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA (0x00200107) /* SEP stopped while transfering sense data */ 211#define PL_LOGINFO_DA_SEP_STOP_ON_SENSE_DATA (0x00200107) /* SEP stopped while transferring sense data */
212#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 (0x00200108) /* SEP returned unknown scsi status */ 212#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_1 (0x00200108) /* SEP returned unknown scsi status */
213#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 (0x00200109) /* SEP returned unknown scsi status */ 213#define PL_LOGINFO_DA_SEP_UNSUPPORTED_SCSI_STATUS_2 (0x00200109) /* SEP returned unknown scsi status */
214#define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP (0x0020010A) /* SEP returned bad chksum after STOP */ 214#define PL_LOGINFO_DA_SEP_CHKSUM_ERROR_AFTER_STOP (0x0020010A) /* SEP returned bad chksum after STOP */
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index ec8080c98081..7956a10f9488 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -83,19 +83,18 @@ MODULE_VERSION(my_VERSION);
83 83
84static int mpt_msi_enable_spi; 84static int mpt_msi_enable_spi;
85module_param(mpt_msi_enable_spi, int, 0); 85module_param(mpt_msi_enable_spi, int, 0);
86MODULE_PARM_DESC(mpt_msi_enable_spi, " Enable MSI Support for SPI \ 86MODULE_PARM_DESC(mpt_msi_enable_spi,
87 controllers (default=0)"); 87 " Enable MSI Support for SPI controllers (default=0)");
88 88
89static int mpt_msi_enable_fc; 89static int mpt_msi_enable_fc;
90module_param(mpt_msi_enable_fc, int, 0); 90module_param(mpt_msi_enable_fc, int, 0);
91MODULE_PARM_DESC(mpt_msi_enable_fc, " Enable MSI Support for FC \ 91MODULE_PARM_DESC(mpt_msi_enable_fc,
92 controllers (default=0)"); 92 " Enable MSI Support for FC controllers (default=0)");
93 93
94static int mpt_msi_enable_sas; 94static int mpt_msi_enable_sas;
95module_param(mpt_msi_enable_sas, int, 0); 95module_param(mpt_msi_enable_sas, int, 0);
96MODULE_PARM_DESC(mpt_msi_enable_sas, " Enable MSI Support for SAS \ 96MODULE_PARM_DESC(mpt_msi_enable_sas,
97 controllers (default=0)"); 97 " Enable MSI Support for SAS controllers (default=0)");
98
99 98
100static int mpt_channel_mapping; 99static int mpt_channel_mapping;
101module_param(mpt_channel_mapping, int, 0); 100module_param(mpt_channel_mapping, int, 0);
@@ -105,15 +104,14 @@ static int mpt_debug_level;
105static int mpt_set_debug_level(const char *val, struct kernel_param *kp); 104static int mpt_set_debug_level(const char *val, struct kernel_param *kp);
106module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int, 105module_param_call(mpt_debug_level, mpt_set_debug_level, param_get_int,
107 &mpt_debug_level, 0600); 106 &mpt_debug_level, 0600);
108MODULE_PARM_DESC(mpt_debug_level, " debug level - refer to mptdebug.h \ 107MODULE_PARM_DESC(mpt_debug_level,
109 - (default=0)"); 108 " debug level - refer to mptdebug.h - (default=0)");
110 109
111int mpt_fwfault_debug; 110int mpt_fwfault_debug;
112EXPORT_SYMBOL(mpt_fwfault_debug); 111EXPORT_SYMBOL(mpt_fwfault_debug);
113module_param(mpt_fwfault_debug, int, 0600); 112module_param(mpt_fwfault_debug, int, 0600);
114MODULE_PARM_DESC(mpt_fwfault_debug, "Enable detection of Firmware fault" 113MODULE_PARM_DESC(mpt_fwfault_debug,
115 " and halt Firmware on fault - (default=0)"); 114 "Enable detection of Firmware fault and halt Firmware on fault - (default=0)");
116
117 115
118static char MptCallbacksName[MPT_MAX_PROTOCOL_DRIVERS][50]; 116static char MptCallbacksName[MPT_MAX_PROTOCOL_DRIVERS][50];
119 117
@@ -3435,7 +3433,7 @@ SendPortEnable(MPT_ADAPTER *ioc, int portnum, int sleepFlag)
3435 * If memory has already been allocated, the same (cached) value 3433 * If memory has already been allocated, the same (cached) value
3436 * is returned. 3434 * is returned.
3437 * 3435 *
3438 * Return 0 if successfull, or non-zero for failure 3436 * Return 0 if successful, or non-zero for failure
3439 **/ 3437 **/
3440int 3438int
3441mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size) 3439mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size)
@@ -6932,7 +6930,7 @@ EXPORT_SYMBOL(mpt_halt_firmware);
6932 * Message Unit Reset - instructs the IOC to reset the Reply Post and 6930 * Message Unit Reset - instructs the IOC to reset the Reply Post and
6933 * Free FIFO's. All the Message Frames on Reply Free FIFO are discarded. 6931 * Free FIFO's. All the Message Frames on Reply Free FIFO are discarded.
6934 * All posted buffers are freed, and event notification is turned off. 6932 * All posted buffers are freed, and event notification is turned off.
6935 * IOC doesnt reply to any outstanding request. This will transfer IOC 6933 * IOC doesn't reply to any outstanding request. This will transfer IOC
6936 * to READY state. 6934 * to READY state.
6937 **/ 6935 **/
6938int 6936int
@@ -7905,7 +7903,7 @@ mpt_spi_log_info(MPT_ADAPTER *ioc, u32 log_info)
7905 "Owner", /* 15h */ 7903 "Owner", /* 15h */
7906 "Open Transmit DMA Abort", /* 16h */ 7904 "Open Transmit DMA Abort", /* 16h */
7907 "IO Device Missing Delay Retry", /* 17h */ 7905 "IO Device Missing Delay Retry", /* 17h */
7908 "IO Cancelled Due to Recieve Error", /* 18h */ 7906 "IO Cancelled Due to Receive Error", /* 18h */
7909 NULL, /* 19h */ 7907 NULL, /* 19h */
7910 NULL, /* 1Ah */ 7908 NULL, /* 1Ah */
7911 NULL, /* 1Bh */ 7909 NULL, /* 1Bh */
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 1735c84ff757..fe902338539b 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -76,8 +76,8 @@
76#define COPYRIGHT "Copyright (c) 1999-2008 " MODULEAUTHOR 76#define COPYRIGHT "Copyright (c) 1999-2008 " MODULEAUTHOR
77#endif 77#endif
78 78
79#define MPT_LINUX_VERSION_COMMON "3.04.18" 79#define MPT_LINUX_VERSION_COMMON "3.04.19"
80#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.18" 80#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.19"
81#define WHAT_MAGIC_STRING "@" "(" "#" ")" 81#define WHAT_MAGIC_STRING "@" "(" "#" ")"
82 82
83#define show_mptmod_ver(s,ver) \ 83#define show_mptmod_ver(s,ver) \
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c
index 878bda0cce70..6e6e16aab9da 100644
--- a/drivers/message/fusion/mptctl.c
+++ b/drivers/message/fusion/mptctl.c
@@ -985,7 +985,7 @@ retry_wait:
985 ReplyMsg = (pFWDownloadReply_t)iocp->ioctl_cmds.reply; 985 ReplyMsg = (pFWDownloadReply_t)iocp->ioctl_cmds.reply;
986 iocstat = le16_to_cpu(ReplyMsg->IOCStatus) & MPI_IOCSTATUS_MASK; 986 iocstat = le16_to_cpu(ReplyMsg->IOCStatus) & MPI_IOCSTATUS_MASK;
987 if (iocstat == MPI_IOCSTATUS_SUCCESS) { 987 if (iocstat == MPI_IOCSTATUS_SUCCESS) {
988 printk(MYIOC_s_INFO_FMT "F/W update successfull!\n", iocp->name); 988 printk(MYIOC_s_INFO_FMT "F/W update successful!\n", iocp->name);
989 return 0; 989 return 0;
990 } else if (iocstat == MPI_IOCSTATUS_INVALID_FUNCTION) { 990 } else if (iocstat == MPI_IOCSTATUS_INVALID_FUNCTION) {
991 printk(MYIOC_s_WARN_FMT "Hmmm... F/W download not supported!?!\n", 991 printk(MYIOC_s_WARN_FMT "Hmmm... F/W download not supported!?!\n",
@@ -2407,7 +2407,7 @@ done_free_mem:
2407 } 2407 }
2408 2408
2409 /* mf is null if command issued successfully 2409 /* mf is null if command issued successfully
2410 * otherwise, failure occured after mf acquired. 2410 * otherwise, failure occurred after mf acquired.
2411 */ 2411 */
2412 if (mf) 2412 if (mf)
2413 mpt_free_msg_frame(ioc, mf); 2413 mpt_free_msg_frame(ioc, mf);
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index f5a14afad2cd..7596aecd5072 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -307,7 +307,7 @@ mptsas_requeue_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event,
307 spin_unlock_irqrestore(&ioc->fw_event_lock, flags); 307 spin_unlock_irqrestore(&ioc->fw_event_lock, flags);
308} 308}
309 309
310/* free memory assoicated to a sas firmware event */ 310/* free memory associated to a sas firmware event */
311static void 311static void
312mptsas_free_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event) 312mptsas_free_fw_event(MPT_ADAPTER *ioc, struct fw_event_work *fw_event)
313{ 313{
@@ -1094,7 +1094,7 @@ mptsas_block_io_starget(struct scsi_target *starget)
1094/** 1094/**
1095 * mptsas_target_reset_queue 1095 * mptsas_target_reset_queue
1096 * 1096 *
1097 * Receive request for TARGET_RESET after recieving an firmware 1097 * Receive request for TARGET_RESET after receiving an firmware
1098 * event NOT_RESPONDING_EVENT, then put command in link list 1098 * event NOT_RESPONDING_EVENT, then put command in link list
1099 * and queue if task_queue already in use. 1099 * and queue if task_queue already in use.
1100 * 1100 *
@@ -1403,7 +1403,7 @@ mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
1403/** 1403/**
1404 * mptsas_add_end_device - report a new end device to sas transport layer 1404 * mptsas_add_end_device - report a new end device to sas transport layer
1405 * @ioc: Pointer to MPT_ADAPTER structure 1405 * @ioc: Pointer to MPT_ADAPTER structure
1406 * @phy_info: decribes attached device 1406 * @phy_info: describes attached device
1407 * 1407 *
1408 * return (0) success (1) failure 1408 * return (0) success (1) failure
1409 * 1409 *
@@ -1481,7 +1481,7 @@ mptsas_add_end_device(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info)
1481/** 1481/**
1482 * mptsas_del_end_device - report a deleted end device to sas transport layer 1482 * mptsas_del_end_device - report a deleted end device to sas transport layer
1483 * @ioc: Pointer to MPT_ADAPTER structure 1483 * @ioc: Pointer to MPT_ADAPTER structure
1484 * @phy_info: decribes attached device 1484 * @phy_info: describes attached device
1485 * 1485 *
1486 **/ 1486 **/
1487static void 1487static void
@@ -5012,7 +5012,6 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
5012 (ioc_stat & MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE)) { 5012 (ioc_stat & MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE)) {
5013 VirtTarget *vtarget = NULL; 5013 VirtTarget *vtarget = NULL;
5014 u8 id, channel; 5014 u8 id, channel;
5015 u32 log_info = le32_to_cpu(reply->IOCLogInfo);
5016 5015
5017 id = sas_event_data->TargetID; 5016 id = sas_event_data->TargetID;
5018 channel = sas_event_data->Bus; 5017 channel = sas_event_data->Bus;
@@ -5023,7 +5022,8 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
5023 "LogInfo (0x%x) available for " 5022 "LogInfo (0x%x) available for "
5024 "INTERNAL_DEVICE_RESET" 5023 "INTERNAL_DEVICE_RESET"
5025 "fw_id %d fw_channel %d\n", ioc->name, 5024 "fw_id %d fw_channel %d\n", ioc->name,
5026 log_info, id, channel)); 5025 le32_to_cpu(reply->IOCLogInfo),
5026 id, channel));
5027 if (vtarget->raidVolume) { 5027 if (vtarget->raidVolume) {
5028 devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT 5028 devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
5029 "Skipping Raid Volume for inDMD\n", 5029 "Skipping Raid Volume for inDMD\n",
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 0d9b82a44540..a1d4ee6671be 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -1415,11 +1415,8 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
1415 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "qcmd: SCpnt=%p, done()=%p\n", 1415 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "qcmd: SCpnt=%p, done()=%p\n",
1416 ioc->name, SCpnt, done)); 1416 ioc->name, SCpnt, done));
1417 1417
1418 if (ioc->taskmgmt_quiesce_io) { 1418 if (ioc->taskmgmt_quiesce_io)
1419 dtmprintk(ioc, printk(MYIOC_s_WARN_FMT "qcmd: SCpnt=%p timeout + 60HZ\n",
1420 ioc->name, SCpnt));
1421 return SCSI_MLQUEUE_HOST_BUSY; 1419 return SCSI_MLQUEUE_HOST_BUSY;
1422 }
1423 1420
1424 /* 1421 /*
1425 * Put together a MPT SCSI request... 1422 * Put together a MPT SCSI request...
@@ -1773,7 +1770,6 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
1773 int scpnt_idx; 1770 int scpnt_idx;
1774 int retval; 1771 int retval;
1775 VirtDevice *vdevice; 1772 VirtDevice *vdevice;
1776 ulong sn = SCpnt->serial_number;
1777 MPT_ADAPTER *ioc; 1773 MPT_ADAPTER *ioc;
1778 1774
1779 /* If we can't locate our host adapter structure, return FAILED status. 1775 /* If we can't locate our host adapter structure, return FAILED status.
@@ -1859,8 +1855,7 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
1859 vdevice->vtarget->id, vdevice->lun, 1855 vdevice->vtarget->id, vdevice->lun,
1860 ctx2abort, mptscsih_get_tm_timeout(ioc)); 1856 ctx2abort, mptscsih_get_tm_timeout(ioc));
1861 1857
1862 if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx && 1858 if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx) {
1863 SCpnt->serial_number == sn) {
1864 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT 1859 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
1865 "task abort: command still in active list! (sc=%p)\n", 1860 "task abort: command still in active list! (sc=%p)\n",
1866 ioc->name, SCpnt)); 1861 ioc->name, SCpnt));
@@ -1873,9 +1868,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
1873 } 1868 }
1874 1869
1875 out: 1870 out:
1876 printk(MYIOC_s_INFO_FMT "task abort: %s (rv=%04x) (sc=%p) (sn=%ld)\n", 1871 printk(MYIOC_s_INFO_FMT "task abort: %s (rv=%04x) (sc=%p)\n",
1877 ioc->name, ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), retval, 1872 ioc->name, ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), retval,
1878 SCpnt, SCpnt->serial_number); 1873 SCpnt);
1879 1874
1880 return retval; 1875 return retval;
1881} 1876}
diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c
index 6d9568d2ec59..8f61ba6aac23 100644
--- a/drivers/message/fusion/mptspi.c
+++ b/drivers/message/fusion/mptspi.c
@@ -867,6 +867,10 @@ static int mptspi_write_spi_device_pg1(struct scsi_target *starget,
867 struct _x_config_parms cfg; 867 struct _x_config_parms cfg;
868 struct _CONFIG_PAGE_HEADER hdr; 868 struct _CONFIG_PAGE_HEADER hdr;
869 int err = -EBUSY; 869 int err = -EBUSY;
870 u32 nego_parms;
871 u32 period;
872 struct scsi_device *sdev;
873 int i;
870 874
871 /* don't allow updating nego parameters on RAID devices */ 875 /* don't allow updating nego parameters on RAID devices */
872 if (starget->channel == 0 && 876 if (starget->channel == 0 &&
@@ -904,6 +908,24 @@ static int mptspi_write_spi_device_pg1(struct scsi_target *starget,
904 pg1->Header.PageNumber = hdr.PageNumber; 908 pg1->Header.PageNumber = hdr.PageNumber;
905 pg1->Header.PageType = hdr.PageType; 909 pg1->Header.PageType = hdr.PageType;
906 910
911 nego_parms = le32_to_cpu(pg1->RequestedParameters);
912 period = (nego_parms & MPI_SCSIDEVPAGE1_RP_MIN_SYNC_PERIOD_MASK) >>
913 MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD;
914 if (period == 8) {
915 /* Turn on inline data padding for TAPE when running U320 */
916 for (i = 0 ; i < 16; i++) {
917 sdev = scsi_device_lookup_by_target(starget, i);
918 if (sdev && sdev->type == TYPE_TAPE) {
919 sdev_printk(KERN_DEBUG, sdev, MYIOC_s_FMT
920 "IDP:ON\n", ioc->name);
921 nego_parms |= MPI_SCSIDEVPAGE1_RP_IDP;
922 pg1->RequestedParameters =
923 cpu_to_le32(nego_parms);
924 break;
925 }
926 }
927 }
928
907 mptspi_print_write_nego(hd, starget, le32_to_cpu(pg1->RequestedParameters)); 929 mptspi_print_write_nego(hd, starget, le32_to_cpu(pg1->RequestedParameters));
908 930
909 if (mpt_config(ioc, &cfg)) { 931 if (mpt_config(ioc, &cfg)) {
diff --git a/drivers/message/i2o/README b/drivers/message/i2o/README
index 911fc3021e3b..f072a8eb3041 100644
--- a/drivers/message/i2o/README
+++ b/drivers/message/i2o/README
@@ -53,7 +53,7 @@ Symbios Logic (Now LSI)
53BoxHill Corporation 53BoxHill Corporation
54 Loan of initial FibreChannel disk array used for development work. 54 Loan of initial FibreChannel disk array used for development work.
55 55
56European Comission 56European Commission
57 Funding the work done by the University of Helsinki 57 Funding the work done by the University of Helsinki
58 58
59SysKonnect 59SysKonnect
diff --git a/drivers/message/i2o/README.ioctl b/drivers/message/i2o/README.ioctl
index 65c0c47aeb79..5fb195af43e2 100644
--- a/drivers/message/i2o/README.ioctl
+++ b/drivers/message/i2o/README.ioctl
@@ -110,7 +110,7 @@ V. Getting Logical Configuration Table
110 ENOBUFS Buffer not large enough. If this occurs, the required 110 ENOBUFS Buffer not large enough. If this occurs, the required
111 buffer length is written into *(lct->reslen) 111 buffer length is written into *(lct->reslen)
112 112
113VI. Settting Parameters 113VI. Setting Parameters
114 114
115 SYNOPSIS 115 SYNOPSIS
116 116
diff --git a/drivers/message/i2o/device.c b/drivers/message/i2o/device.c
index 0ee4264f5db7..4547db99f7da 100644
--- a/drivers/message/i2o/device.c
+++ b/drivers/message/i2o/device.c
@@ -65,7 +65,7 @@ int i2o_device_claim(struct i2o_device *dev)
65 65
66 rc = i2o_device_issue_claim(dev, I2O_CMD_UTIL_CLAIM, I2O_CLAIM_PRIMARY); 66 rc = i2o_device_issue_claim(dev, I2O_CMD_UTIL_CLAIM, I2O_CLAIM_PRIMARY);
67 if (!rc) 67 if (!rc)
68 pr_debug("i2o: claim of device %d succeded\n", 68 pr_debug("i2o: claim of device %d succeeded\n",
69 dev->lct_data.tid); 69 dev->lct_data.tid);
70 else 70 else
71 pr_debug("i2o: claim of device %d failed %d\n", 71 pr_debug("i2o: claim of device %d failed %d\n",
@@ -110,7 +110,7 @@ int i2o_device_claim_release(struct i2o_device *dev)
110 } 110 }
111 111
112 if (!rc) 112 if (!rc)
113 pr_debug("i2o: claim release of device %d succeded\n", 113 pr_debug("i2o: claim release of device %d succeeded\n",
114 dev->lct_data.tid); 114 dev->lct_data.tid);
115 else 115 else
116 pr_debug("i2o: claim release of device %d failed %d\n", 116 pr_debug("i2o: claim release of device %d failed %d\n",
@@ -248,7 +248,7 @@ static int i2o_device_add(struct i2o_controller *c, i2o_lct_entry *entry)
248 goto unreg_dev; 248 goto unreg_dev;
249 } 249 }
250 250
251 /* create user entries refering to this device */ 251 /* create user entries referring to this device */
252 list_for_each_entry(tmp, &c->devices, list) 252 list_for_each_entry(tmp, &c->devices, list)
253 if ((tmp->lct_data.user_tid == i2o_dev->lct_data.tid) 253 if ((tmp->lct_data.user_tid == i2o_dev->lct_data.tid)
254 && (tmp != i2o_dev)) { 254 && (tmp != i2o_dev)) {
@@ -267,7 +267,7 @@ static int i2o_device_add(struct i2o_controller *c, i2o_lct_entry *entry)
267 goto rmlink1; 267 goto rmlink1;
268 } 268 }
269 269
270 /* create parent entries refering to this device */ 270 /* create parent entries referring to this device */
271 list_for_each_entry(tmp, &c->devices, list) 271 list_for_each_entry(tmp, &c->devices, list)
272 if ((tmp->lct_data.parent_tid == i2o_dev->lct_data.tid) 272 if ((tmp->lct_data.parent_tid == i2o_dev->lct_data.tid)
273 && (tmp != i2o_dev)) { 273 && (tmp != i2o_dev)) {
diff --git a/drivers/message/i2o/i2o_block.c b/drivers/message/i2o/i2o_block.c
index 47ec5bc0ed21..4796bbf0ae4e 100644
--- a/drivers/message/i2o/i2o_block.c
+++ b/drivers/message/i2o/i2o_block.c
@@ -610,7 +610,7 @@ static int i2o_block_release(struct gendisk *disk, fmode_t mode)
610 610
611 /* 611 /*
612 * This is to deail with the case of an application 612 * This is to deail with the case of an application
613 * opening a device and then the device dissapears while 613 * opening a device and then the device disappears while
614 * it's in use, and then the application tries to release 614 * it's in use, and then the application tries to release
615 * it. ex: Unmounting a deleted RAID volume at reboot. 615 * it. ex: Unmounting a deleted RAID volume at reboot.
616 * If we send messages, it will just cause FAILs since 616 * If we send messages, it will just cause FAILs since
@@ -717,7 +717,7 @@ static unsigned int i2o_block_check_events(struct gendisk *disk,
717 717
718/** 718/**
719 * i2o_block_transfer - Transfer a request to/from the I2O controller 719 * i2o_block_transfer - Transfer a request to/from the I2O controller
720 * @req: the request which should be transfered 720 * @req: the request which should be transferred
721 * 721 *
722 * This function converts the request into a I2O message. The necessary 722 * This function converts the request into a I2O message. The necessary
723 * DMA buffers are allocated and after everything is setup post the message 723 * DMA buffers are allocated and after everything is setup post the message
@@ -1000,7 +1000,6 @@ static struct i2o_block_device *i2o_block_device_alloc(void)
1000 gd->major = I2O_MAJOR; 1000 gd->major = I2O_MAJOR;
1001 gd->queue = queue; 1001 gd->queue = queue;
1002 gd->fops = &i2o_block_fops; 1002 gd->fops = &i2o_block_fops;
1003 gd->events = DISK_EVENT_MEDIA_CHANGE;
1004 gd->private_data = dev; 1003 gd->private_data = dev;
1005 1004
1006 dev->gd = gd; 1005 dev->gd = gd;
diff --git a/drivers/message/i2o/i2o_block.h b/drivers/message/i2o/i2o_block.h
index 67f921b4419b..cf8873cbca3f 100644
--- a/drivers/message/i2o/i2o_block.h
+++ b/drivers/message/i2o/i2o_block.h
@@ -73,7 +73,7 @@ struct i2o_block_device {
73 struct i2o_device *i2o_dev; /* pointer to I2O device */ 73 struct i2o_device *i2o_dev; /* pointer to I2O device */
74 struct gendisk *gd; 74 struct gendisk *gd;
75 spinlock_t lock; /* queue lock */ 75 spinlock_t lock; /* queue lock */
76 struct list_head open_queue; /* list of transfered, but unfinished 76 struct list_head open_queue; /* list of transferred, but unfinished
77 requests */ 77 requests */
78 unsigned int open_queue_depth; /* number of requests in the queue */ 78 unsigned int open_queue_depth; /* number of requests in the queue */
79 79
diff --git a/drivers/message/i2o/i2o_scsi.c b/drivers/message/i2o/i2o_scsi.c
index 97bdf82ec905..74fbe56321ff 100644
--- a/drivers/message/i2o/i2o_scsi.c
+++ b/drivers/message/i2o/i2o_scsi.c
@@ -204,7 +204,7 @@ static int i2o_scsi_remove(struct device *dev)
204 * i2o_scsi_probe - verify if dev is a I2O SCSI device and install it 204 * i2o_scsi_probe - verify if dev is a I2O SCSI device and install it
205 * @dev: device to verify if it is a I2O SCSI device 205 * @dev: device to verify if it is a I2O SCSI device
206 * 206 *
207 * Retrieve channel, id and lun for I2O device. If everthing goes well 207 * Retrieve channel, id and lun for I2O device. If everything goes well
208 * register the I2O device as SCSI device on the I2O SCSI controller. 208 * register the I2O device as SCSI device on the I2O SCSI controller.
209 * 209 *
210 * Returns 0 on success or negative error code on failure. 210 * Returns 0 on success or negative error code on failure.
@@ -361,7 +361,7 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m,
361 */ 361 */
362 error = le32_to_cpu(msg->body[0]); 362 error = le32_to_cpu(msg->body[0]);
363 363
364 osm_debug("Completed %ld\n", cmd->serial_number); 364 osm_debug("Completed %0x%p\n", cmd);
365 365
366 cmd->result = error & 0xff; 366 cmd->result = error & 0xff;
367 /* 367 /*
@@ -678,7 +678,7 @@ static int i2o_scsi_queuecommand_lck(struct scsi_cmnd *SCpnt,
678 /* Queue the message */ 678 /* Queue the message */
679 i2o_msg_post(c, msg); 679 i2o_msg_post(c, msg);
680 680
681 osm_debug("Issued %ld\n", SCpnt->serial_number); 681 osm_debug("Issued %0x%p\n", SCpnt);
682 682
683 return 0; 683 return 0;
684 684