&ioc->total_io_cnt), ioc->reply_queue_count) : 0;
 
        if (scmd && ioc->shost->nr_hw_queues > 1) {
-               u32 tag = blk_mq_unique_tag(scmd->request);
+               u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd));
 
                return blk_mq_unique_tag_to_hwq(tag) +
                        ioc->high_iops_queues;
        u16 smid;
        u32 tag, unique_tag;
 
-       unique_tag = blk_mq_unique_tag(scmd->request);
+       unique_tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmd));
        tag = blk_mq_unique_tag_to_tag(unique_tag);
 
        /*
 
        sdev_printk(KERN_INFO, scmd->device, "attempting task abort!"
            "scmd(0x%p), outstanding for %u ms & timeout %u ms\n",
            scmd, jiffies_to_msecs(jiffies - scmd->jiffies_at_alloc),
-           (scmd->request->timeout / HZ) * 1000);
+           (scsi_cmd_to_rq(scmd)->timeout / HZ) * 1000);
        _scsih_tm_display_info(ioc, scmd);
 
        sas_device_priv_data = scmd->device->hostdata;
                    MPI2_SCSIIO_EEDPFLAGS_CHECK_REFTAG |
                    MPI2_SCSIIO_EEDPFLAGS_CHECK_GUARD;
                mpi_request->CDB.EEDP32.PrimaryReferenceTag =
-                   cpu_to_be32(t10_pi_ref_tag(scmd->request));
+                   cpu_to_be32(t10_pi_ref_tag(scsi_cmd_to_rq(scmd)));
                break;
 
        case SCSI_PROT_DIF_TYPE3:
        struct MPT3SAS_DEVICE *sas_device_priv_data;
        struct MPT3SAS_TARGET *sas_target_priv_data;
        struct _raid_device *raid_device;
-       struct request *rq = scmd->request;
+       struct request *rq = scsi_cmd_to_rq(scmd);
        int class;
        Mpi25SCSIIORequest_t *mpi_request;
        struct _pcie_device *pcie_device = NULL;