• Home
  • Raw
  • Download

Lines Matching refs:scmnd

1174 static void srp_unmap_data(struct scsi_cmnd *scmnd,  in srp_unmap_data()  argument
1183 if (!scsi_sglist(scmnd) || in srp_unmap_data()
1184 (scmnd->sc_data_direction != DMA_TO_DEVICE && in srp_unmap_data()
1185 scmnd->sc_data_direction != DMA_FROM_DEVICE)) in srp_unmap_data()
1206 ib_dma_unmap_sg(ibdev, scsi_sglist(scmnd), scsi_sg_count(scmnd), in srp_unmap_data()
1207 scmnd->sc_data_direction); in srp_unmap_data()
1224 struct scsi_cmnd *scmnd) in srp_claim_req() argument
1229 if (req->scmnd && in srp_claim_req()
1230 (!sdev || req->scmnd->device == sdev) && in srp_claim_req()
1231 (!scmnd || req->scmnd == scmnd)) { in srp_claim_req()
1232 scmnd = req->scmnd; in srp_claim_req()
1233 req->scmnd = NULL; in srp_claim_req()
1235 scmnd = NULL; in srp_claim_req()
1239 return scmnd; in srp_claim_req()
1250 struct scsi_cmnd *scmnd, s32 req_lim_delta) in srp_free_req() argument
1254 srp_unmap_data(scmnd, ch, req); in srp_free_req()
1264 struct scsi_cmnd *scmnd = srp_claim_req(ch, req, sdev, NULL); in srp_finish_req() local
1266 if (scmnd) { in srp_finish_req()
1267 srp_free_req(ch, req, scmnd, 0); in srp_finish_req()
1268 scmnd->result = result; in srp_finish_req()
1269 scmnd->scsi_done(scmnd); in srp_finish_req()
1278 static bool srp_terminate_cmd(struct scsi_cmnd *scmnd, void *context_ptr, in srp_terminate_cmd() argument
1283 u32 tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmnd)); in srp_terminate_cmd()
1285 struct srp_request *req = scsi_cmd_priv(scmnd); in srp_terminate_cmd()
1463 dev_name(&req->scmnd->device->sdev_gendev), sg_nents, in srp_map_finish_fr()
1602 if (desc_len != scsi_bufflen(req->scmnd) || in srp_check_mapping()
1603 mr_len > scsi_bufflen(req->scmnd)) in srp_check_mapping()
1605 scsi_bufflen(req->scmnd), desc_len, mr_len, in srp_check_mapping()
1619 static int srp_map_data(struct scsi_cmnd *scmnd, struct srp_rdma_ch *ch, in srp_map_data() argument
1637 if (!scsi_sglist(scmnd) || scmnd->sc_data_direction == DMA_NONE) in srp_map_data()
1640 if (scmnd->sc_data_direction != DMA_FROM_DEVICE && in srp_map_data()
1641 scmnd->sc_data_direction != DMA_TO_DEVICE) { in srp_map_data()
1644 scmnd->sc_data_direction); in srp_map_data()
1648 nents = scsi_sg_count(scmnd); in srp_map_data()
1649 scat = scsi_sglist(scmnd); in srp_map_data()
1650 data_len = scsi_bufflen(scmnd); in srp_map_data()
1655 count = ib_dma_map_sg(ibdev, scat, nents, scmnd->sc_data_direction); in srp_map_data()
1662 scmnd->sc_data_direction == DMA_TO_DEVICE) { in srp_map_data()
1782 if (scmnd->sc_data_direction == DMA_TO_DEVICE) in srp_map_data()
1791 if (scmnd->sc_data_direction == DMA_TO_DEVICE) in srp_map_data()
1799 srp_unmap_data(scmnd, ch, req); in srp_map_data()
1936 struct scsi_cmnd *scmnd; in srp_process_rsp() local
1954 scmnd = scsi_host_find_tag(target->scsi_host, rsp->tag); in srp_process_rsp()
1955 if (scmnd) { in srp_process_rsp()
1956 req = scsi_cmd_priv(scmnd); in srp_process_rsp()
1957 scmnd = srp_claim_req(ch, req, NULL, scmnd); in srp_process_rsp()
1959 if (!scmnd) { in srp_process_rsp()
1970 scmnd->result = rsp->status; in srp_process_rsp()
1973 memcpy(scmnd->sense_buffer, rsp->data + in srp_process_rsp()
1980 scsi_set_resid(scmnd, be32_to_cpu(rsp->data_in_res_cnt)); in srp_process_rsp()
1982 scsi_set_resid(scmnd, be32_to_cpu(rsp->data_out_res_cnt)); in srp_process_rsp()
1984 srp_free_req(ch, req, scmnd, in srp_process_rsp()
1987 scmnd->scsi_done(scmnd); in srp_process_rsp()
2150 static int srp_queuecommand(struct Scsi_Host *shost, struct scsi_cmnd *scmnd) in srp_queuecommand() argument
2152 struct request *rq = scsi_cmd_to_rq(scmnd); in srp_queuecommand()
2155 struct srp_request *req = scsi_cmd_priv(scmnd); in srp_queuecommand()
2163 scmnd->result = srp_chkready(target->rport); in srp_queuecommand()
2164 if (unlikely(scmnd->result)) in srp_queuecommand()
2186 int_to_scsilun(scmnd->device->lun, &cmd->lun); in srp_queuecommand()
2188 memcpy(cmd->cdb, scmnd->cmnd, scmnd->cmd_len); in srp_queuecommand()
2189 if (unlikely(scmnd->cmd_len > sizeof(cmd->cdb))) { in srp_queuecommand()
2190 cmd->add_cdb_len = round_up(scmnd->cmd_len - sizeof(cmd->cdb), in srp_queuecommand()
2196 req->scmnd = scmnd; in srp_queuecommand()
2199 len = srp_map_data(scmnd, ch, req); in srp_queuecommand()
2209 scmnd->result = len == -ENOMEM ? in srp_queuecommand()
2219 scmnd->result = DID_ERROR << 16; in srp_queuecommand()
2226 srp_unmap_data(scmnd, ch, req); in srp_queuecommand()
2235 req->scmnd = NULL; in srp_queuecommand()
2238 if (scmnd->result) { in srp_queuecommand()
2239 scmnd->scsi_done(scmnd); in srp_queuecommand()
2779 static int srp_abort(struct scsi_cmnd *scmnd) in srp_abort() argument
2781 struct srp_target_port *target = host_to_target(scmnd->device->host); in srp_abort()
2782 struct srp_request *req = scsi_cmd_priv(scmnd); in srp_abort()
2790 tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmnd)); in srp_abort()
2795 if (!srp_claim_req(ch, req, NULL, scmnd)) in srp_abort()
2799 if (srp_send_tsk_mgmt(ch, tag, scmnd->device->lun, in srp_abort()
2807 srp_free_req(ch, req, scmnd, 0); in srp_abort()
2808 scmnd->result = DID_ABORT << 16; in srp_abort()
2809 scmnd->scsi_done(scmnd); in srp_abort()
2815 static int srp_reset_device(struct scsi_cmnd *scmnd) in srp_reset_device() argument
2817 struct srp_target_port *target = host_to_target(scmnd->device->host); in srp_reset_device()
2824 if (srp_send_tsk_mgmt(ch, SRP_TAG_NO_REQ, scmnd->device->lun, in srp_reset_device()
2833 static int srp_reset_host(struct scsi_cmnd *scmnd) in srp_reset_host() argument
2835 struct srp_target_port *target = host_to_target(scmnd->device->host); in srp_reset_host()