diff options
Diffstat (limited to 'drivers/message/fusion/mptscsih.c')
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 31 |
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); | |||
95 | static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply); | 95 | static void mptscsih_copy_sense_data(struct scsi_cmnd *sc, MPT_SCSI_HOST *hd, MPT_FRAME_HDR *mf, SCSIIOReply_t *pScsiReply); |
96 | 96 | ||
97 | int mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, | 97 | int 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 | ||
100 | int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); | 100 | int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset); |
101 | int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply); | 101 | int 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 | **/ |
1520 | int | 1517 | int |
1521 | mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun, | 1518 | mptscsih_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) |