Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (110 commits) [SCSI] qla2xxx: Refactor call to qla2xxx_read_sfp for thermal temperature. [SCSI] qla2xxx: Unify the read/write sfp mailbox command routines. [SCSI] qla2xxx: Clear complete initialization control block. [SCSI] qla2xxx: Allow an override of the registered maximum LUN. [SCSI] qla2xxx: Add host number in reset and quiescent message logs. [SCSI] qla2xxx: Correctly read sfp single byte mailbox register. [SCSI] qla2xxx: Add qla82xx_rom_unlock() function. [SCSI] qla2xxx: Log if qla82xx firmware fails to load from flash. [SCSI] qla2xxx: Use passed in host to initialize local scsi_qla_host in queuecommand function [SCSI] qla2xxx: Correct buffer start in edc sysfs debug print. [SCSI] qla2xxx: Update firmware version after flash update for ISP82xx. [SCSI] qla2xxx: Fix hang during driver unload when vport is active. [SCSI] qla2xxx: Properly set the dsd_list_len for dsd_chaining in cmd type 6. [SCSI] qla2xxx: Fix virtual port failing to login after chip reset. [SCSI] qla2xxx: Fix vport delete hang when logins are outstanding. [SCSI] hpsa: Change memset using sizeof(ptr) to sizeof(*ptr) [SCSI] ipr: Rate limit DMA mapping errors [SCSI] hpsa: add P2000 to list of shared SAS devices [SCSI] hpsa: do not attempt PCI power management reset method if we know it won't work. [SCSI] hpsa: remove superfluous sleeps around reset code ...
This commit is contained in:
@@ -76,8 +76,8 @@
|
||||
#define COPYRIGHT "Copyright (c) 1999-2008 " MODULEAUTHOR
|
||||
#endif
|
||||
|
||||
#define MPT_LINUX_VERSION_COMMON "3.04.18"
|
||||
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.18"
|
||||
#define MPT_LINUX_VERSION_COMMON "3.04.19"
|
||||
#define MPT_LINUX_PACKAGE_NAME "@(#)mptlinux-3.04.19"
|
||||
#define WHAT_MAGIC_STRING "@" "(" "#" ")"
|
||||
|
||||
#define show_mptmod_ver(s,ver) \
|
||||
|
@@ -5012,7 +5012,6 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
|
||||
(ioc_stat & MPI_IOCSTATUS_FLAG_LOG_INFO_AVAILABLE)) {
|
||||
VirtTarget *vtarget = NULL;
|
||||
u8 id, channel;
|
||||
u32 log_info = le32_to_cpu(reply->IOCLogInfo);
|
||||
|
||||
id = sas_event_data->TargetID;
|
||||
channel = sas_event_data->Bus;
|
||||
@@ -5023,7 +5022,8 @@ mptsas_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *reply)
|
||||
"LogInfo (0x%x) available for "
|
||||
"INTERNAL_DEVICE_RESET"
|
||||
"fw_id %d fw_channel %d\n", ioc->name,
|
||||
log_info, id, channel));
|
||||
le32_to_cpu(reply->IOCLogInfo),
|
||||
id, channel));
|
||||
if (vtarget->raidVolume) {
|
||||
devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"Skipping Raid Volume for inDMD\n",
|
||||
|
@@ -1415,11 +1415,8 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt, void (*done)(struct scsi_cmnd *))
|
||||
dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "qcmd: SCpnt=%p, done()=%p\n",
|
||||
ioc->name, SCpnt, done));
|
||||
|
||||
if (ioc->taskmgmt_quiesce_io) {
|
||||
dtmprintk(ioc, printk(MYIOC_s_WARN_FMT "qcmd: SCpnt=%p timeout + 60HZ\n",
|
||||
ioc->name, SCpnt));
|
||||
if (ioc->taskmgmt_quiesce_io)
|
||||
return SCSI_MLQUEUE_HOST_BUSY;
|
||||
}
|
||||
|
||||
/*
|
||||
* Put together a MPT SCSI request...
|
||||
@@ -1773,7 +1770,6 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
|
||||
int scpnt_idx;
|
||||
int retval;
|
||||
VirtDevice *vdevice;
|
||||
ulong sn = SCpnt->serial_number;
|
||||
MPT_ADAPTER *ioc;
|
||||
|
||||
/* If we can't locate our host adapter structure, return FAILED status.
|
||||
@@ -1859,8 +1855,7 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
|
||||
vdevice->vtarget->id, vdevice->lun,
|
||||
ctx2abort, mptscsih_get_tm_timeout(ioc));
|
||||
|
||||
if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx &&
|
||||
SCpnt->serial_number == sn) {
|
||||
if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx) {
|
||||
dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT
|
||||
"task abort: command still in active list! (sc=%p)\n",
|
||||
ioc->name, SCpnt));
|
||||
@@ -1873,9 +1868,9 @@ mptscsih_abort(struct scsi_cmnd * SCpnt)
|
||||
}
|
||||
|
||||
out:
|
||||
printk(MYIOC_s_INFO_FMT "task abort: %s (rv=%04x) (sc=%p) (sn=%ld)\n",
|
||||
printk(MYIOC_s_INFO_FMT "task abort: %s (rv=%04x) (sc=%p)\n",
|
||||
ioc->name, ((retval == SUCCESS) ? "SUCCESS" : "FAILED"), retval,
|
||||
SCpnt, SCpnt->serial_number);
|
||||
SCpnt);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
@@ -867,6 +867,10 @@ static int mptspi_write_spi_device_pg1(struct scsi_target *starget,
|
||||
struct _x_config_parms cfg;
|
||||
struct _CONFIG_PAGE_HEADER hdr;
|
||||
int err = -EBUSY;
|
||||
u32 nego_parms;
|
||||
u32 period;
|
||||
struct scsi_device *sdev;
|
||||
int i;
|
||||
|
||||
/* don't allow updating nego parameters on RAID devices */
|
||||
if (starget->channel == 0 &&
|
||||
@@ -904,6 +908,24 @@ static int mptspi_write_spi_device_pg1(struct scsi_target *starget,
|
||||
pg1->Header.PageNumber = hdr.PageNumber;
|
||||
pg1->Header.PageType = hdr.PageType;
|
||||
|
||||
nego_parms = le32_to_cpu(pg1->RequestedParameters);
|
||||
period = (nego_parms & MPI_SCSIDEVPAGE1_RP_MIN_SYNC_PERIOD_MASK) >>
|
||||
MPI_SCSIDEVPAGE1_RP_SHIFT_MIN_SYNC_PERIOD;
|
||||
if (period == 8) {
|
||||
/* Turn on inline data padding for TAPE when running U320 */
|
||||
for (i = 0 ; i < 16; i++) {
|
||||
sdev = scsi_device_lookup_by_target(starget, i);
|
||||
if (sdev && sdev->type == TYPE_TAPE) {
|
||||
sdev_printk(KERN_DEBUG, sdev, MYIOC_s_FMT
|
||||
"IDP:ON\n", ioc->name);
|
||||
nego_parms |= MPI_SCSIDEVPAGE1_RP_IDP;
|
||||
pg1->RequestedParameters =
|
||||
cpu_to_le32(nego_parms);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mptspi_print_write_nego(hd, starget, le32_to_cpu(pg1->RequestedParameters));
|
||||
|
||||
if (mpt_config(ioc, &cfg)) {
|
||||
|
@@ -361,7 +361,7 @@ static int i2o_scsi_reply(struct i2o_controller *c, u32 m,
|
||||
*/
|
||||
error = le32_to_cpu(msg->body[0]);
|
||||
|
||||
osm_debug("Completed %ld\n", cmd->serial_number);
|
||||
osm_debug("Completed %0x%p\n", cmd);
|
||||
|
||||
cmd->result = error & 0xff;
|
||||
/*
|
||||
@@ -678,7 +678,7 @@ static int i2o_scsi_queuecommand_lck(struct scsi_cmnd *SCpnt,
|
||||
/* Queue the message */
|
||||
i2o_msg_post(c, msg);
|
||||
|
||||
osm_debug("Issued %ld\n", SCpnt->serial_number);
|
||||
osm_debug("Issued %0x%p\n", SCpnt);
|
||||
|
||||
return 0;
|
||||
|
||||
|
Reference in New Issue
Block a user