Lines Matching refs:rq
173 struct esas2r_request *rq, in esas2r_handle_outbound_rsp_err() argument
181 if (unlikely(rq->req_stat != RS_SUCCESS)) { in esas2r_handle_outbound_rsp_err()
182 memcpy(&rq->func_rsp, &rsp->func_rsp, sizeof(rsp->func_rsp)); in esas2r_handle_outbound_rsp_err()
184 if (rq->req_stat == RS_ABORTED) { in esas2r_handle_outbound_rsp_err()
185 if (rq->timeout > RQ_MAX_TIMEOUT) in esas2r_handle_outbound_rsp_err()
186 rq->req_stat = RS_TIMEOUT; in esas2r_handle_outbound_rsp_err()
187 } else if (rq->req_stat == RS_SCSI_ERROR) { in esas2r_handle_outbound_rsp_err()
188 u8 scsistatus = rq->func_rsp.scsi_rsp.scsi_stat; in esas2r_handle_outbound_rsp_err()
197 rq->req_stat = RS_SUCCESS; in esas2r_handle_outbound_rsp_err()
198 rq->func_rsp.scsi_rsp.scsi_stat = in esas2r_handle_outbound_rsp_err()
210 struct esas2r_request *rq; in esas2r_get_outbound_responses() local
262 rq = a->req_table[LOWORD(handle)]; in esas2r_get_outbound_responses()
264 if (unlikely(rq == NULL || rq->vrq->scsi.handle != handle)) { in esas2r_get_outbound_responses()
269 list_del(&rq->req_list); in esas2r_get_outbound_responses()
272 rq->req_stat = rsp->req_stat; in esas2r_get_outbound_responses()
275 esas2r_trace("rq: %p", rq); in esas2r_get_outbound_responses()
276 esas2r_trace("req_status: %x", rq->req_stat); in esas2r_get_outbound_responses()
278 if (likely(rq->vrq->scsi.function == VDA_FUNC_SCSI)) { in esas2r_get_outbound_responses()
279 esas2r_handle_outbound_rsp_err(a, rq, rsp); in esas2r_get_outbound_responses()
285 memcpy(&rq->func_rsp, &rsp->func_rsp, in esas2r_get_outbound_responses()
290 list_add_tail(&rq->comp_list, &comp_list); in esas2r_get_outbound_responses()
309 struct esas2r_request *rq; in esas2r_do_deferred_processes() local
347 rq = list_entry(element, struct esas2r_request, in esas2r_do_deferred_processes()
350 if (rq->req_stat != RS_PENDING) { in esas2r_do_deferred_processes()
352 list_add_tail(&rq->comp_list, &comp_list); in esas2r_do_deferred_processes()
360 else if (rq->req_type == RT_DISC_REQ) { in esas2r_do_deferred_processes()
362 esas2r_disc_local_start_request(a, rq); in esas2r_do_deferred_processes()
365 esas2r_local_start_request(a, rq); in esas2r_do_deferred_processes()
390 struct esas2r_request *rq = &a->general_req; in esas2r_process_adapter_reset() local
403 if (rq->interrupt_cx) { in esas2r_process_adapter_reset()
404 dc = (struct esas2r_disc_context *)rq->interrupt_cx; in esas2r_process_adapter_reset()
418 rq->interrupt_cx = NULL; in esas2r_process_adapter_reset()
419 rq->interrupt_cb = NULL; in esas2r_process_adapter_reset()
421 rq->comp_cb = esas2r_dummy_complete; in esas2r_process_adapter_reset()
433 rq = list_entry(element, struct esas2r_request, req_list); in esas2r_process_adapter_reset()
435 if (rq->req_stat == RS_STARTED) in esas2r_process_adapter_reset()
436 if (esas2r_ioreq_aborted(a, rq, RS_ABORTED)) in esas2r_process_adapter_reset()
437 list_add_tail(&rq->comp_list, &comp_list); in esas2r_process_adapter_reset()
448 struct esas2r_request *rq; in esas2r_process_bus_reset() local
462 rq = list_entry(element, struct esas2r_request, req_list); in esas2r_process_bus_reset()
463 if (esas2r_ioreq_aborted(a, rq, RS_ABORTED)) in esas2r_process_bus_reset()
464 list_add_tail(&rq->comp_list, &comp_list); in esas2r_process_bus_reset()
748 void esas2r_ae_complete(struct esas2r_adapter *a, struct esas2r_request *rq) in esas2r_ae_complete() argument
751 (union atto_vda_ae *)rq->vda_rsp_data->ae_data.event_data; in esas2r_ae_complete()
752 u32 length = le32_to_cpu(rq->func_rsp.ae_rsp.length); in esas2r_ae_complete()
754 (union atto_vda_ae *)(rq->vda_rsp_data->ae_data.event_data in esas2r_ae_complete()
765 rq, length); in esas2r_ae_complete()
847 esas2r_start_ae_request(a, rq); in esas2r_ae_complete()
874 void esas2r_dummy_complete(struct esas2r_adapter *a, struct esas2r_request *rq) in esas2r_dummy_complete() argument
878 struct esas2r_request *rq) in esas2r_check_req_rsp_sense() argument
882 snslen = snslen2 = rq->func_rsp.scsi_rsp.sense_len; in esas2r_check_req_rsp_sense()
884 if (snslen > rq->sense_len) in esas2r_check_req_rsp_sense()
885 snslen = rq->sense_len; in esas2r_check_req_rsp_sense()
888 if (rq->sense_buf) in esas2r_check_req_rsp_sense()
889 memcpy(rq->sense_buf, rq->data_buf, snslen); in esas2r_check_req_rsp_sense()
891 rq->sense_buf = (u8 *)rq->data_buf; in esas2r_check_req_rsp_sense()
895 u8 *s = (u8 *)rq->data_buf; in esas2r_check_req_rsp_sense()
902 rq->target_id); in esas2r_check_req_rsp_sense()
903 esas2r_target_state_changed(a, rq->target_id, in esas2r_check_req_rsp_sense()
913 rq->sense_len = snslen; in esas2r_check_req_rsp_sense()
918 struct esas2r_request *rq) in esas2r_complete_request() argument
920 if (rq->vrq->scsi.function == VDA_FUNC_FLASH in esas2r_complete_request()
921 && rq->vrq->flash.sub_func == VDA_FLASH_COMMIT) in esas2r_complete_request()
926 if (rq->interrupt_cb) { in esas2r_complete_request()
927 (*rq->interrupt_cb)(a, rq); in esas2r_complete_request()
929 if (rq->req_stat == RS_PENDING) { in esas2r_complete_request()
930 esas2r_start_request(a, rq); in esas2r_complete_request()
935 if (likely(rq->vrq->scsi.function == VDA_FUNC_SCSI) in esas2r_complete_request()
936 && unlikely(rq->req_stat != RS_SUCCESS)) { in esas2r_complete_request()
937 esas2r_check_req_rsp_sense(a, rq); in esas2r_complete_request()
938 esas2r_log_request_failure(a, rq); in esas2r_complete_request()
941 (*rq->comp_cb)(a, rq); in esas2r_complete_request()