Lines Matching refs:rq
145 struct esas2r_request *rq; in write_live_nvram() local
148 rq = esas2r_alloc_request(a); in write_live_nvram()
149 if (rq == NULL) in write_live_nvram()
152 if (esas2r_write_params(a, rq, (struct esas2r_sas_nvram *)buf)) in write_live_nvram()
155 esas2r_free_request(a, rq); in write_live_nvram()
882 struct esas2r_request *rq; in esas2r_queuecommand() local
895 rq = esas2r_alloc_request(a); in esas2r_queuecommand()
896 if (unlikely(rq == NULL)) { in esas2r_queuecommand()
901 rq->cmd = cmd; in esas2r_queuecommand()
906 rq->vrq->scsi.flags |= cpu_to_le32(FCP_CMND_WRD); in esas2r_queuecommand()
908 rq->vrq->scsi.flags |= cpu_to_le32(FCP_CMND_RDD); in esas2r_queuecommand()
911 memcpy(rq->vrq->scsi.cdb, cmd->cmnd, cmd->cmd_len); in esas2r_queuecommand()
912 rq->vrq->scsi.length = cpu_to_le32(bufflen); in esas2r_queuecommand()
913 rq->target_id = cmd->device->id; in esas2r_queuecommand()
914 rq->vrq->scsi.flags |= cpu_to_le32(cmd->device->lun); in esas2r_queuecommand()
915 rq->sense_buf = cmd->sense_buffer; in esas2r_queuecommand()
916 rq->sense_len = SCSI_SENSE_BUFFERSIZE; in esas2r_queuecommand()
918 esas2r_sgc_init(&sgc, a, rq, NULL); in esas2r_queuecommand()
929 esas2r_free_request(a, rq); in esas2r_queuecommand()
935 if (unlikely(!esas2r_build_sg_list(a, rq, &sgc))) { in esas2r_queuecommand()
937 esas2r_free_request(a, rq); in esas2r_queuecommand()
941 esas2r_debug("start request %p to %d:%d\n", rq, (int)cmd->device->id, in esas2r_queuecommand()
944 esas2r_start_request(a, rq); in esas2r_queuecommand()
950 struct esas2r_request *rq) in complete_task_management_request() argument
952 (*rq->task_management_status_ptr) = rq->req_stat; in complete_task_management_request()
953 esas2r_free_request(a, rq); in complete_task_management_request()
973 struct esas2r_request *rq; in esas2r_check_active_queue() local
978 rq = list_entry(element, struct esas2r_request, req_list); in esas2r_check_active_queue()
980 if (rq->cmd == cmd) { in esas2r_check_active_queue()
1004 ar->target_id = rq->target_id; in esas2r_check_active_queue()
1006 (u8)le32_to_cpu(rq->vrq->scsi.flags)); in esas2r_check_active_queue()
1014 rq->vrq->scsi.handle; in esas2r_check_active_queue()
1021 list_del_init(&rq->req_list); in esas2r_check_active_queue()
1022 esas2r_free_request(a, rq); in esas2r_check_active_queue()
1172 struct esas2r_request *rq; in esas2r_dev_targ_reset() local
1180 rq = esas2r_alloc_request(a); in esas2r_dev_targ_reset()
1181 if (rq == NULL) { in esas2r_dev_targ_reset()
1199 rq->target_id = cmd->device->id; in esas2r_dev_targ_reset()
1200 rq->vrq->scsi.flags |= cpu_to_le32(cmd->device->lun); in esas2r_dev_targ_reset()
1201 rq->req_stat = RS_PENDING; in esas2r_dev_targ_reset()
1203 rq->comp_cb = complete_task_management_request; in esas2r_dev_targ_reset()
1204 rq->task_management_status_ptr = &task_management_status; in esas2r_dev_targ_reset()
1207 esas2r_debug("issuing target reset (%p) to id %d", rq, in esas2r_dev_targ_reset()
1209 completed = esas2r_send_task_mgmt(a, rq, 0x20); in esas2r_dev_targ_reset()
1211 esas2r_debug("issuing device reset (%p) to id %d lun %d", rq, in esas2r_dev_targ_reset()
1213 completed = esas2r_send_task_mgmt(a, rq, 0x10); in esas2r_dev_targ_reset()
1219 esas2r_free_request(a, rq); in esas2r_dev_targ_reset()
1260 struct esas2r_request *rq) in esas2r_log_request_failure() argument
1262 u8 reqstatus = rq->req_stat; in esas2r_log_request_failure()
1267 if (rq->vrq->scsi.function == VDA_FUNC_SCSI) { in esas2r_log_request_failure()
1269 if (rq->func_rsp.scsi_rsp.sense_len >= 13) { in esas2r_log_request_failure()
1272 rq->sense_buf[2], rq->sense_buf[12], in esas2r_log_request_failure()
1273 rq->sense_buf[13], in esas2r_log_request_failure()
1274 rq->vrq->scsi.cdb[0]); in esas2r_log_request_failure()
1278 rq->vrq->scsi.cdb[0]); in esas2r_log_request_failure()
1280 } else if ((rq->vrq->scsi.cdb[0] != INQUIRY in esas2r_log_request_failure()
1281 && rq->vrq->scsi.cdb[0] != REPORT_LUNS) in esas2r_log_request_failure()
1285 (rq->vrq->scsi.cdb[0] == INQUIRY)) { in esas2r_log_request_failure()
1290 rq->vrq->scsi.cdb[0], reqstatus, in esas2r_log_request_failure()
1291 rq->target_id); in esas2r_log_request_failure()
1297 void esas2r_wait_request(struct esas2r_adapter *a, struct esas2r_request *rq) in esas2r_wait_request() argument
1303 timeout = rq->timeout ? rq->timeout : 5000; in esas2r_wait_request()
1308 if (rq->req_stat != RS_STARTED) in esas2r_wait_request()
1317 rq->req_stat = RS_TIMEOUT; in esas2r_wait_request()
1545 void esas2r_free_request(struct esas2r_adapter *a, struct esas2r_request *rq) in esas2r_free_request() argument
1549 esas2r_rq_destroy_request(rq, a); in esas2r_free_request()
1551 list_add(&rq->comp_list, &a->avail_request); in esas2r_free_request()
1557 struct esas2r_request *rq; in esas2r_alloc_request() local
1567 rq = list_first_entry(&a->avail_request, struct esas2r_request, in esas2r_alloc_request()
1569 list_del(&rq->comp_list); in esas2r_alloc_request()
1571 esas2r_rq_init_request(rq, a); in esas2r_alloc_request()
1573 return rq; in esas2r_alloc_request()
1578 struct esas2r_request *rq) in esas2r_complete_request_cb() argument
1580 esas2r_debug("completing request %p\n", rq); in esas2r_complete_request_cb()
1582 scsi_dma_unmap(rq->cmd); in esas2r_complete_request_cb()
1584 if (unlikely(rq->req_stat != RS_SUCCESS)) { in esas2r_complete_request_cb()
1585 esas2r_debug("[%x STATUS %x:%x (%x)]", rq->target_id, in esas2r_complete_request_cb()
1586 rq->req_stat, in esas2r_complete_request_cb()
1587 rq->func_rsp.scsi_rsp.scsi_stat, in esas2r_complete_request_cb()
1588 rq->cmd); in esas2r_complete_request_cb()
1590 rq->cmd->result = in esas2r_complete_request_cb()
1591 ((esas2r_req_status_to_error(rq->req_stat) << 16) in esas2r_complete_request_cb()
1592 | (rq->func_rsp.scsi_rsp.scsi_stat & STATUS_MASK)); in esas2r_complete_request_cb()
1594 if (rq->req_stat == RS_UNDERRUN) in esas2r_complete_request_cb()
1595 scsi_set_resid(rq->cmd, in esas2r_complete_request_cb()
1596 le32_to_cpu(rq->func_rsp.scsi_rsp. in esas2r_complete_request_cb()
1599 scsi_set_resid(rq->cmd, 0); in esas2r_complete_request_cb()
1602 rq->cmd->scsi_done(rq->cmd); in esas2r_complete_request_cb()
1604 esas2r_free_request(a, rq); in esas2r_complete_request_cb()