Lines Matching refs:srp
130 if (req_iu(req)->srp.cmd.tag == srp_tag) { in vscsi_find_req()
199 req->crq.s.IU_data_ptr = req_iu(req)->srp.rsp.tag; /* right byte order */ in vscsi_send_iu()
236 uint64_t tag = iu->srp.rsp.tag; in vscsi_send_rsp()
237 int total_len = sizeof(iu->srp.rsp); in vscsi_send_rsp()
238 uint8_t sol_not = iu->srp.cmd.sol_not; in vscsi_send_rsp()
243 iu->srp.rsp.opcode = SRP_RSP; in vscsi_send_rsp()
244 iu->srp.rsp.req_lim_delta = cpu_to_be32(1); in vscsi_send_rsp()
245 iu->srp.rsp.tag = tag; in vscsi_send_rsp()
249 iu->srp.rsp.flags |= SRP_RSP_FLAG_DIUNDER; in vscsi_send_rsp()
252 iu->srp.rsp.flags |= SRP_RSP_FLAG_DIOVER; in vscsi_send_rsp()
255 iu->srp.rsp.flags |= SRP_RSP_FLAG_DOUNDER; in vscsi_send_rsp()
258 iu->srp.rsp.flags |= SRP_RSP_FLAG_DOOVER; in vscsi_send_rsp()
260 iu->srp.rsp.data_in_res_cnt = cpu_to_be32(res_in); in vscsi_send_rsp()
261 iu->srp.rsp.data_out_res_cnt = cpu_to_be32(res_out); in vscsi_send_rsp()
265 iu->srp.rsp.resp_data_len = cpu_to_be32(0); in vscsi_send_rsp()
268 iu->srp.rsp.status = status; in vscsi_send_rsp()
270 iu->srp.rsp.sol_not = (sol_not & 0x04) >> 2; in vscsi_send_rsp()
274 iu->srp.rsp.flags |= SRP_RSP_FLAG_SNSVALID; in vscsi_send_rsp()
275 iu->srp.rsp.sense_data_len = cpu_to_be32(sense_data_len); in vscsi_send_rsp()
276 memcpy(iu->srp.rsp.data, req->sense, sense_data_len); in vscsi_send_rsp()
280 iu->srp.rsp.sol_not = (sol_not & 0x02) >> 1; in vscsi_send_rsp()
298 struct srp_cmd *cmd = &req_iu(req)->srp.cmd; in vscsi_fetch_desc()
486 struct srp_cmd *cmd = &req_iu(req)->srp.cmd; in vscsi_preprocess_desc()
669 struct srp_login_rsp *rsp = &iu->srp.login_rsp; in vscsi_process_login()
670 uint64_t tag = iu->srp.rsp.tag; in vscsi_process_login()
694 uint8_t *cdb = req_iu(req)->srp.cmd.cdb; in vscsi_inquiry_no_target()
783 union srp_iu *srp = &req_iu(req)->srp; in vscsi_queue_cmd() local
786 size_t cdb_len = sizeof (srp->cmd.cdb) + (srp->cmd.add_cdb_len & ~3); in vscsi_queue_cmd()
788 if ((srp->cmd.lun == 0 || be64_to_cpu(srp->cmd.lun) == SRP_REPORT_LUNS_WLUN) in vscsi_queue_cmd()
789 && srp->cmd.cdb[0] == REPORT_LUNS) { in vscsi_queue_cmd()
794 sdev = vscsi_device_find(&s->bus, be64_to_cpu(srp->cmd.lun), &lun); in vscsi_queue_cmd()
796 trace_spapr_vscsi_queue_cmd_no_drive(be64_to_cpu(srp->cmd.lun)); in vscsi_queue_cmd()
797 if (srp->cmd.cdb[0] == INQUIRY) { in vscsi_queue_cmd()
805 req->sreq = scsi_req_new(sdev, req->qtag, lun, srp->cmd.cdb, cdb_len, req); in vscsi_queue_cmd()
808 trace_spapr_vscsi_queue_cmd(req->qtag, srp->cmd.cdb[0], in vscsi_queue_cmd()
809 scsi_command_name(srp->cmd.cdb[0]), lun, n); in vscsi_queue_cmd()
839 uint64_t tag = iu->srp.rsp.tag; in vscsi_process_tsk_mgmt()
840 uint8_t sol_not = iu->srp.cmd.sol_not; in vscsi_process_tsk_mgmt()
842 trace_spapr_vscsi_process_tsk_mgmt(iu->srp.tsk_mgmt.tsk_mgmt_func); in vscsi_process_tsk_mgmt()
844 be64_to_cpu(req_iu(req)->srp.tsk_mgmt.lun), &lun); in vscsi_process_tsk_mgmt()
848 switch (iu->srp.tsk_mgmt.tsk_mgmt_func) { in vscsi_process_tsk_mgmt()
855 tmpreq = vscsi_find_req(s, req_iu(req)->srp.tsk_mgmt.task_tag); in vscsi_process_tsk_mgmt()
880 if (req_iu(tmpreq)->srp.cmd.lun in vscsi_process_tsk_mgmt()
881 != req_iu(req)->srp.tsk_mgmt.lun) { in vscsi_process_tsk_mgmt()
905 iu->srp.rsp.opcode = SRP_RSP; in vscsi_process_tsk_mgmt()
906 iu->srp.rsp.req_lim_delta = cpu_to_be32(1); in vscsi_process_tsk_mgmt()
907 iu->srp.rsp.tag = tag; in vscsi_process_tsk_mgmt()
908 iu->srp.rsp.flags |= SRP_RSP_FLAG_RSPVALID; in vscsi_process_tsk_mgmt()
909 iu->srp.rsp.resp_data_len = cpu_to_be32(4); in vscsi_process_tsk_mgmt()
911 iu->srp.rsp.sol_not = (sol_not & 0x04) >> 2; in vscsi_process_tsk_mgmt()
913 iu->srp.rsp.sol_not = (sol_not & 0x02) >> 1; in vscsi_process_tsk_mgmt()
916 iu->srp.rsp.status = GOOD; in vscsi_process_tsk_mgmt()
917 iu->srp.rsp.data[3] = resp; in vscsi_process_tsk_mgmt()
919 vscsi_send_iu(s, req, sizeof(iu->srp.rsp) + 4, VIOSRP_SRP_FORMAT); in vscsi_process_tsk_mgmt()
926 union srp_iu *srp = &req_iu(req)->srp; in vscsi_handle_srp_req() local
928 uint8_t opcode = srp->rsp.opcode; in vscsi_handle_srp_req()