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()
881 struct esas2r_request *rq; in esas2r_queuecommand() local
894 rq = esas2r_alloc_request(a); in esas2r_queuecommand()
895 if (unlikely(rq == NULL)) { in esas2r_queuecommand()
900 rq->cmd = cmd; in esas2r_queuecommand()
905 rq->vrq->scsi.flags |= cpu_to_le32(FCP_CMND_WRD); in esas2r_queuecommand()
907 rq->vrq->scsi.flags |= cpu_to_le32(FCP_CMND_RDD); in esas2r_queuecommand()
910 memcpy(rq->vrq->scsi.cdb, cmd->cmnd, cmd->cmd_len); in esas2r_queuecommand()
911 rq->vrq->scsi.length = cpu_to_le32(bufflen); in esas2r_queuecommand()
912 rq->target_id = cmd->device->id; in esas2r_queuecommand()
913 rq->vrq->scsi.flags |= cpu_to_le32(cmd->device->lun); in esas2r_queuecommand()
914 rq->sense_buf = cmd->sense_buffer; in esas2r_queuecommand()
915 rq->sense_len = SCSI_SENSE_BUFFERSIZE; in esas2r_queuecommand()
917 esas2r_sgc_init(&sgc, a, rq, NULL); in esas2r_queuecommand()
928 esas2r_free_request(a, rq); in esas2r_queuecommand()
934 if (unlikely(!esas2r_build_sg_list(a, rq, &sgc))) { in esas2r_queuecommand()
936 esas2r_free_request(a, rq); in esas2r_queuecommand()
940 esas2r_debug("start request %p to %d:%d\n", rq, (int)cmd->device->id, in esas2r_queuecommand()
943 esas2r_start_request(a, rq); in esas2r_queuecommand()
949 struct esas2r_request *rq) in complete_task_management_request() argument
951 (*rq->task_management_status_ptr) = rq->req_stat; in complete_task_management_request()
952 esas2r_free_request(a, rq); in complete_task_management_request()
972 struct esas2r_request *rq; in esas2r_check_active_queue() local
977 rq = list_entry(element, struct esas2r_request, req_list); in esas2r_check_active_queue()
979 if (rq->cmd == cmd) { in esas2r_check_active_queue()
1003 ar->target_id = rq->target_id; in esas2r_check_active_queue()
1005 (u8)le32_to_cpu(rq->vrq->scsi.flags)); in esas2r_check_active_queue()
1013 rq->vrq->scsi.handle; in esas2r_check_active_queue()
1020 list_del_init(&rq->req_list); in esas2r_check_active_queue()
1021 esas2r_free_request(a, rq); in esas2r_check_active_queue()
1171 struct esas2r_request *rq; in esas2r_dev_targ_reset() local
1179 rq = esas2r_alloc_request(a); in esas2r_dev_targ_reset()
1180 if (rq == NULL) { in esas2r_dev_targ_reset()
1198 rq->target_id = cmd->device->id; in esas2r_dev_targ_reset()
1199 rq->vrq->scsi.flags |= cpu_to_le32(cmd->device->lun); in esas2r_dev_targ_reset()
1200 rq->req_stat = RS_PENDING; in esas2r_dev_targ_reset()
1202 rq->comp_cb = complete_task_management_request; in esas2r_dev_targ_reset()
1203 rq->task_management_status_ptr = &task_management_status; in esas2r_dev_targ_reset()
1206 esas2r_debug("issuing target reset (%p) to id %d", rq, in esas2r_dev_targ_reset()
1208 completed = esas2r_send_task_mgmt(a, rq, 0x20); in esas2r_dev_targ_reset()
1210 esas2r_debug("issuing device reset (%p) to id %d lun %d", rq, in esas2r_dev_targ_reset()
1212 completed = esas2r_send_task_mgmt(a, rq, 0x10); in esas2r_dev_targ_reset()
1218 esas2r_free_request(a, rq); in esas2r_dev_targ_reset()
1259 struct esas2r_request *rq) in esas2r_log_request_failure() argument
1261 u8 reqstatus = rq->req_stat; in esas2r_log_request_failure()
1266 if (rq->vrq->scsi.function == VDA_FUNC_SCSI) { in esas2r_log_request_failure()
1268 if (rq->func_rsp.scsi_rsp.sense_len >= 13) { in esas2r_log_request_failure()
1271 rq->sense_buf[2], rq->sense_buf[12], in esas2r_log_request_failure()
1272 rq->sense_buf[13], in esas2r_log_request_failure()
1273 rq->vrq->scsi.cdb[0]); in esas2r_log_request_failure()
1277 rq->vrq->scsi.cdb[0]); in esas2r_log_request_failure()
1279 } else if ((rq->vrq->scsi.cdb[0] != INQUIRY in esas2r_log_request_failure()
1280 && rq->vrq->scsi.cdb[0] != REPORT_LUNS) in esas2r_log_request_failure()
1284 (rq->vrq->scsi.cdb[0] == INQUIRY)) { in esas2r_log_request_failure()
1289 rq->vrq->scsi.cdb[0], reqstatus, in esas2r_log_request_failure()
1290 rq->target_id); in esas2r_log_request_failure()
1296 void esas2r_wait_request(struct esas2r_adapter *a, struct esas2r_request *rq) in esas2r_wait_request() argument
1302 timeout = rq->timeout ? rq->timeout : 5000; in esas2r_wait_request()
1307 if (rq->req_stat != RS_STARTED) in esas2r_wait_request()
1316 rq->req_stat = RS_TIMEOUT; in esas2r_wait_request()
1544 void esas2r_free_request(struct esas2r_adapter *a, struct esas2r_request *rq) in esas2r_free_request() argument
1548 esas2r_rq_destroy_request(rq, a); in esas2r_free_request()
1550 list_add(&rq->comp_list, &a->avail_request); in esas2r_free_request()
1556 struct esas2r_request *rq; in esas2r_alloc_request() local
1566 rq = list_first_entry(&a->avail_request, struct esas2r_request, in esas2r_alloc_request()
1568 list_del(&rq->comp_list); in esas2r_alloc_request()
1570 esas2r_rq_init_request(rq, a); in esas2r_alloc_request()
1572 return rq; in esas2r_alloc_request()
1577 struct esas2r_request *rq) in esas2r_complete_request_cb() argument
1579 esas2r_debug("completing request %p\n", rq); in esas2r_complete_request_cb()
1581 scsi_dma_unmap(rq->cmd); in esas2r_complete_request_cb()
1583 if (unlikely(rq->req_stat != RS_SUCCESS)) { in esas2r_complete_request_cb()
1584 esas2r_debug("[%x STATUS %x:%x (%x)]", rq->target_id, in esas2r_complete_request_cb()
1585 rq->req_stat, in esas2r_complete_request_cb()
1586 rq->func_rsp.scsi_rsp.scsi_stat, in esas2r_complete_request_cb()
1587 rq->cmd); in esas2r_complete_request_cb()
1589 rq->cmd->result = in esas2r_complete_request_cb()
1590 ((esas2r_req_status_to_error(rq->req_stat) << 16) in esas2r_complete_request_cb()
1591 | (rq->func_rsp.scsi_rsp.scsi_stat & STATUS_MASK)); in esas2r_complete_request_cb()
1593 if (rq->req_stat == RS_UNDERRUN) in esas2r_complete_request_cb()
1594 scsi_set_resid(rq->cmd, in esas2r_complete_request_cb()
1595 le32_to_cpu(rq->func_rsp.scsi_rsp. in esas2r_complete_request_cb()
1598 scsi_set_resid(rq->cmd, 0); in esas2r_complete_request_cb()
1601 rq->cmd->scsi_done(rq->cmd); in esas2r_complete_request_cb()
1603 esas2r_free_request(a, rq); in esas2r_complete_request_cb()