(struct scatterlist *)(cmd->prot_sdb + 1);
        }
 
-       blk_mq_start_request(req);
-
        /*
         * Special handling for passthrough commands, which don't go to the ULP
         * at all:
                req->rq_flags |= RQF_DONTPREP;
        } else {
                clear_bit(SCMD_STATE_COMPLETE, &cmd->state);
-               blk_mq_start_request(req);
        }
 
        cmd->flags &= SCMD_PRESERVED_FLAGS;
        memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
        cmd->scsi_done = scsi_mq_done;
 
+       blk_mq_start_request(req);
        reason = scsi_dispatch_cmd(cmd);
        if (reason) {
                scsi_set_blocked(cmd, reason);