diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:29:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:29:52 -0400 |
commit | ad9471752ebae25daa133b4e5d9299809c35e155 (patch) | |
tree | dfcc75d7ee75ef0465c109423885c4326ccf9b9f /drivers/message | |
parent | 6c1b8d94bcc1882e451d0e7a28a4a5253f4970ab (diff) | |
parent | 6ad11eaa8a689a27e0c99905bcf800a37cd432a0 (diff) |
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
...
Diffstat (limited to 'drivers/message')
-rw-r--r-- | drivers/message/fusion/mptbase.h | 4 | ||||
-rw-r--r-- | drivers/message/fusion/mptsas.c | 4 | ||||
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 13 | ||||
-rw-r--r-- | drivers/message/fusion/mptspi.c | 22 | ||||
-rw-r--r-- | drivers/message/i2o/i2o_scsi.c | 4 |
5 files changed, 32 insertions, 15 deletions
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/mptsas.c b/drivers/message/fusion/mptsas.c index 66f94125de4e..7596aecd5072 100644 --- a/drivers/message/fusion/mptsas.c +++ b/drivers/message/fusion/mptsas.c | |||
@@ -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/i2o_scsi.c b/drivers/message/i2o/i2o_scsi.c index f003957e8e1c..74fbe56321ff 100644 --- a/drivers/message/i2o/i2o_scsi.c +++ b/drivers/message/i2o/i2o_scsi.c | |||
@@ -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 | ||