aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptscsih.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message/fusion/mptscsih.c')
-rw-r--r--drivers/message/fusion/mptscsih.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c
index 2a1c6f21af27..e7dcb2583369 100644
--- a/drivers/message/fusion/mptscsih.c
+++ b/drivers/message/fusion/mptscsih.c
@@ -95,7 +95,7 @@ static void mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx);
95static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply); 95static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply);
96 96
97int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, 97int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id,
98 int lun, int ctx2abort, ulong timeout); 98 u64 lun, int ctx2abort, ulong timeout);
99 99
100int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); 100int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
101int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply); 101int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
@@ -536,7 +536,7 @@ mptscsih_info_scsiio(MPT_ADAPTER *ioc, struct scsi_cmnd *sc, SCSIIOReply_t * pSc
536 } 536 }
537 537
538 scsi_print_command(sc); 538 scsi_print_command(sc);
539 printk(MYIOC_s_DEBUG_FMT "\tfw_channel = %d, fw_id = %d, lun = %d\n", 539 printk(MYIOC_s_DEBUG_FMT "\tfw_channel = %d, fw_id = %d, lun = %llu\n",
540 ioc->name, pScsiReply->Bus, pScsiReply->TargetID, sc->device->lun); 540 ioc->name, pScsiReply->Bus, pScsiReply->TargetID, sc->device->lun);
541 printk(MYIOC_s_DEBUG_FMT "\trequest_len = %d, underflow = %d, " 541 printk(MYIOC_s_DEBUG_FMT "\trequest_len = %d, underflow = %d, "
542 "resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow, 542 "resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow,
@@ -692,7 +692,7 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr)
692 */ 692 */
693 if (scsi_state & MPI_SCSI_STATE_RESPONSE_INFO_VALID && 693 if (scsi_state & MPI_SCSI_STATE_RESPONSE_INFO_VALID &&
694 pScsiReply->ResponseInfo) { 694 pScsiReply->ResponseInfo) {
695 printk(MYIOC_s_NOTE_FMT "[%d:%d:%d:%d] " 695 printk(MYIOC_s_NOTE_FMT "[%d:%d:%d:%llu] "
696 "FCP_ResponseInfo=%08xh\n", ioc->name, 696 "FCP_ResponseInfo=%08xh\n", ioc->name,
697 sc->device->host->host_no, sc->device->channel, 697 sc->device->host->host_no, sc->device->channel,
698 sc->device->id, sc->device->lun, 698 sc->device->id, sc->device->lun,
@@ -1155,7 +1155,7 @@ mptscsih_report_queue_full(struct scsi_cmnd *sc, SCSIIOReply_t *pScsiReply, SCSI
1155 return; 1155 return;
1156 ioc = hd->ioc; 1156 ioc = hd->ioc;
1157 if (time - hd->last_queue_full > 10 * HZ) { 1157 if (time - hd->last_queue_full > 10 * HZ) {
1158 dprintk(ioc, printk(MYIOC_s_WARN_FMT "Device (%d:%d:%d) reported QUEUE_FULL!\n", 1158 dprintk(ioc, printk(MYIOC_s_WARN_FMT "Device (%d:%d:%llu) reported QUEUE_FULL!\n",
1159 ioc->name, 0, sc->device->id, sc->device->lun)); 1159 ioc->name, 0, sc->device->id, sc->device->lun));
1160 hd->last_queue_full = time; 1160 hd->last_queue_full = time;
1161 } 1161 }
@@ -1271,15 +1271,13 @@ mptscsih_info(struct Scsi_Host *SChost)
1271 1271
1272 h = shost_priv(SChost); 1272 h = shost_priv(SChost);
1273 1273
1274 if (h) { 1274 if (h->info_kbuf == NULL)
1275 if (h->info_kbuf == NULL) 1275 if ((h->info_kbuf = kmalloc(0x1000 /* 4Kb */, GFP_KERNEL)) == NULL)
1276 if ((h->info_kbuf = kmalloc(0x1000 /* 4Kb */, GFP_KERNEL)) == NULL) 1276 return h->info_kbuf;
1277 return h->info_kbuf; 1277 h->info_kbuf[0] = '\0';
1278 h->info_kbuf[0] = '\0';
1279 1278
1280 mpt_print_ioc_summary(h->ioc, h->info_kbuf, &size, 0, 0); 1279 mpt_print_ioc_summary(h->ioc, h->info_kbuf, &size, 0, 0);
1281 h->info_kbuf[size-1] = '\0'; 1280 h->info_kbuf[size-1] = '\0';
1282 }
1283 1281
1284 return h->info_kbuf; 1282 return h->info_kbuf;
1285} 1283}
@@ -1368,8 +1366,7 @@ mptscsih_qcmd(struct scsi_cmnd *SCpnt)
1368 /* Default to untagged. Once a target structure has been allocated, 1366 /* Default to untagged. Once a target structure has been allocated,
1369 * use the Inquiry data to determine if device supports tagged. 1367 * use the Inquiry data to determine if device supports tagged.
1370 */ 1368 */
1371 if (vdevice 1369 if ((vdevice->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES)
1372 && (vdevice->vtarget->tflags & MPT_TARGET_FLAGS_Q_YES)
1373 && (SCpnt->device->tagged_supported)) { 1370 && (SCpnt->device->tagged_supported)) {
1374 scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ; 1371 scsictl = scsidir | MPI_SCSIIO_CONTROL_SIMPLEQ;
1375 if (SCpnt->request && SCpnt->request->ioprio) { 1372 if (SCpnt->request && SCpnt->request->ioprio) {
@@ -1518,7 +1515,7 @@ mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx)
1518 * 1515 *
1519 **/ 1516 **/
1520int 1517int
1521mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun, 1518mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, u64 lun,
1522 int ctx2abort, ulong timeout) 1519 int ctx2abort, ulong timeout)
1523{ 1520{
1524 MPT_FRAME_HDR *mf; 1521 MPT_FRAME_HDR *mf;
@@ -2380,7 +2377,7 @@ mptscsih_slave_configure(struct scsi_device *sdev)
2380 vdevice = sdev->hostdata; 2377 vdevice = sdev->hostdata;
2381 2378
2382 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT 2379 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
2383 "device @ %p, channel=%d, id=%d, lun=%d\n", 2380 "device @ %p, channel=%d, id=%d, lun=%llu\n",
2384 ioc->name, sdev, sdev->channel, sdev->id, sdev->lun)); 2381 ioc->name, sdev, sdev->channel, sdev->id, sdev->lun));
2385 if (ioc->bus_type == SPI) 2382 if (ioc->bus_type == SPI)
2386 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT 2383 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT
@@ -2971,7 +2968,7 @@ mptscsih_do_cmd(MPT_SCSI_HOST *hd, INTERNAL_CMD *io)
2971 + (my_idx * MPT_SENSE_BUFFER_ALLOC)); 2968 + (my_idx * MPT_SENSE_BUFFER_ALLOC));
2972 2969
2973 devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT 2970 devtprintk(ioc, printk(MYIOC_s_DEBUG_FMT
2974 "%s: Sending Command 0x%02x for fw_channel=%d fw_id=%d lun=%d\n", 2971 "%s: Sending Command 0x%02x for fw_channel=%d fw_id=%d lun=%llu\n",
2975 ioc->name, __func__, cmd, io->channel, io->id, io->lun)); 2972 ioc->name, __func__, cmd, io->channel, io->id, io->lun));
2976 2973
2977 if (dir == MPI_SCSIIO_CONTROL_READ) 2974 if (dir == MPI_SCSIIO_CONTROL_READ)