Lines Matching refs:rq

145 	struct esas2r_request *rq;
148 rq = esas2r_alloc_request(a);
149 if (rq == NULL)
152 if (esas2r_write_params(a, rq, (struct esas2r_sas_nvram *)buf))
155 esas2r_free_request(a, rq);
825 struct esas2r_request *rq;
838 rq = esas2r_alloc_request(a);
839 if (unlikely(rq == NULL)) {
844 rq->cmd = cmd;
849 rq->vrq->scsi.flags |= cpu_to_le32(FCP_CMND_WRD);
851 rq->vrq->scsi.flags |= cpu_to_le32(FCP_CMND_RDD);
854 memcpy(rq->vrq->scsi.cdb, cmd->cmnd, cmd->cmd_len);
855 rq->vrq->scsi.length = cpu_to_le32(bufflen);
856 rq->target_id = cmd->device->id;
857 rq->vrq->scsi.flags |= cpu_to_le32(cmd->device->lun);
858 rq->sense_buf = cmd->sense_buffer;
859 rq->sense_len = SCSI_SENSE_BUFFERSIZE;
861 esas2r_sgc_init(&sgc, a, rq, NULL);
872 esas2r_free_request(a, rq);
878 if (unlikely(!esas2r_build_sg_list(a, rq, &sgc))) {
880 esas2r_free_request(a, rq);
884 esas2r_debug("start request %p to %d:%d\n", rq, (int)cmd->device->id,
887 esas2r_start_request(a, rq);
893 struct esas2r_request *rq)
895 (*rq->task_management_status_ptr) = rq->req_stat;
896 esas2r_free_request(a, rq);
912 struct esas2r_request *rq;
917 rq = list_entry(element, struct esas2r_request, req_list);
919 if (rq->cmd == cmd) {
943 ar->target_id = rq->target_id;
945 (u8)le32_to_cpu(rq->vrq->scsi.flags));
953 rq->vrq->scsi.handle;
960 list_del_init(&rq->req_list);
961 esas2r_free_request(a, rq);
1111 struct esas2r_request *rq;
1119 rq = esas2r_alloc_request(a);
1120 if (rq == NULL) {
1138 rq->target_id = cmd->device->id;
1139 rq->vrq->scsi.flags |= cpu_to_le32(cmd->device->lun);
1140 rq->req_stat = RS_PENDING;
1142 rq->comp_cb = complete_task_management_request;
1143 rq->task_management_status_ptr = &task_management_status;
1146 esas2r_debug("issuing target reset (%p) to id %d", rq,
1148 completed = esas2r_send_task_mgmt(a, rq, 0x20);
1150 esas2r_debug("issuing device reset (%p) to id %d lun %d", rq,
1152 completed = esas2r_send_task_mgmt(a, rq, 0x10);
1158 esas2r_free_request(a, rq);
1199 struct esas2r_request *rq)
1201 u8 reqstatus = rq->req_stat;
1206 if (rq->vrq->scsi.function == VDA_FUNC_SCSI) {
1208 if (rq->func_rsp.scsi_rsp.sense_len >= 13) {
1211 rq->sense_buf[2], rq->sense_buf[12],
1212 rq->sense_buf[13],
1213 rq->vrq->scsi.cdb[0]);
1217 rq->vrq->scsi.cdb[0]);
1219 } else if ((rq->vrq->scsi.cdb[0] != INQUIRY
1220 && rq->vrq->scsi.cdb[0] != REPORT_LUNS)
1224 (rq->vrq->scsi.cdb[0] == INQUIRY)) {
1229 rq->vrq->scsi.cdb[0], reqstatus,
1230 rq->target_id);
1236 void esas2r_wait_request(struct esas2r_adapter *a, struct esas2r_request *rq)
1242 timeout = rq->timeout ? rq->timeout : 5000;
1247 if (rq->req_stat != RS_STARTED)
1256 rq->req_stat = RS_TIMEOUT;
1484 void esas2r_free_request(struct esas2r_adapter *a, struct esas2r_request *rq)
1488 esas2r_rq_destroy_request(rq, a);
1490 list_add(&rq->comp_list, &a->avail_request);
1496 struct esas2r_request *rq;
1506 rq = list_first_entry(&a->avail_request, struct esas2r_request,
1508 list_del(&rq->comp_list);
1510 esas2r_rq_init_request(rq, a);
1512 return rq;
1517 struct esas2r_request *rq)
1519 esas2r_debug("completing request %p\n", rq);
1521 scsi_dma_unmap(rq->cmd);
1523 if (unlikely(rq->req_stat != RS_SUCCESS)) {
1524 esas2r_debug("[%x STATUS %x:%x (%x)]", rq->target_id,
1525 rq->req_stat,
1526 rq->func_rsp.scsi_rsp.scsi_stat,
1527 rq->cmd);
1529 rq->cmd->result =
1530 ((esas2r_req_status_to_error(rq->req_stat) << 16)
1531 | rq->func_rsp.scsi_rsp.scsi_stat);
1533 if (rq->req_stat == RS_UNDERRUN)
1534 scsi_set_resid(rq->cmd,
1535 le32_to_cpu(rq->func_rsp.scsi_rsp.
1538 scsi_set_resid(rq->cmd, 0);
1541 scsi_done(rq->cmd);
1543 esas2r_free_request(a, rq);