diff options
Diffstat (limited to 'drivers/message/fusion/mptscsih.c')
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 5431529741ad..b8b059807600 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -1717,12 +1717,18 @@ mptscsih_IssueTaskMgmt(MPT_SCSI_HOST *hd, u8 type, u8 channel, u8 id, int lun, i | |||
1717 | 1717 | ||
1718 | DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)pScsiTm); | 1718 | DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)pScsiTm); |
1719 | 1719 | ||
1720 | if ((retval = mpt_send_handshake_request(hd->ioc->TaskCtx, hd->ioc, | 1720 | if ((hd->ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) && |
1721 | sizeof(SCSITaskMgmt_t), (u32*)pScsiTm, CAN_SLEEP)) != 0) { | 1721 | (hd->ioc->facts.MsgVersion >= MPI_VERSION_01_05)) |
1722 | dfailprintk(hd->ioc, printk(MYIOC_s_ERR_FMT "send_handshake FAILED!" | 1722 | mpt_put_msg_frame_hi_pri(hd->ioc->TaskCtx, hd->ioc, mf); |
1723 | else { | ||
1724 | retval = mpt_send_handshake_request(hd->ioc->TaskCtx, hd->ioc, | ||
1725 | sizeof(SCSITaskMgmt_t), (u32*)pScsiTm, CAN_SLEEP); | ||
1726 | if (retval) { | ||
1727 | dfailprintk(hd->ioc, printk(MYIOC_s_ERR_FMT "send_handshake FAILED!" | ||
1723 | " (hd %p, ioc %p, mf %p, rc=%d) \n", hd->ioc->name, hd, | 1728 | " (hd %p, ioc %p, mf %p, rc=%d) \n", hd->ioc->name, hd, |
1724 | hd->ioc, mf, retval)); | 1729 | hd->ioc, mf, retval)); |
1725 | goto fail_out; | 1730 | goto fail_out; |
1731 | } | ||
1726 | } | 1732 | } |
1727 | 1733 | ||
1728 | if(mptscsih_tm_wait_for_completion(hd, timeout) == FAILED) { | 1734 | if(mptscsih_tm_wait_for_completion(hd, timeout) == FAILED) { |