static int myrb_pthru_queuecommand(struct Scsi_Host *shost,
                struct scsi_cmnd *scmd)
 {
+       struct request *rq = scsi_cmd_to_rq(scmd);
        struct myrb_hba *cb = shost_priv(shost);
        struct myrb_cmdblk *cmd_blk = scsi_cmd_priv(scmd);
        union myrb_cmd_mbox *mbox = &cmd_blk->mbox;
        }
 
        mbox->type3.opcode = MYRB_CMD_DCDB;
-       mbox->type3.id = scmd->request->tag + 3;
+       mbox->type3.id = rq->tag + 3;
        mbox->type3.addr = dcdb_addr;
        dcdb->channel = sdev->channel;
        dcdb->target = sdev->id;
                break;
        }
        dcdb->early_status = false;
-       if (scmd->request->timeout <= 10)
+       if (rq->timeout <= 10)
                dcdb->timeout = MYRB_DCDB_TMO_10_SECS;
-       else if (scmd->request->timeout <= 60)
+       else if (rq->timeout <= 60)
                dcdb->timeout = MYRB_DCDB_TMO_60_SECS;
-       else if (scmd->request->timeout <= 600)
+       else if (rq->timeout <= 600)
                dcdb->timeout = MYRB_DCDB_TMO_10_MINS;
        else
                dcdb->timeout = MYRB_DCDB_TMO_24_HRS;
        }
 
        myrb_reset_cmd(cmd_blk);
-       mbox->type5.id = scmd->request->tag + 3;
+       mbox->type5.id = scsi_cmd_to_rq(scmd)->tag + 3;
        if (scmd->sc_data_direction == DMA_NONE)
                goto submit;
        nsge = scsi_dma_map(scmd);