Lines Matching refs:cmd

41 static sense_reason_t pscsi_execute_cmd(struct se_cmd *cmd);
587 static void pscsi_complete_cmd(struct se_cmd *cmd, u8 scsi_status, in pscsi_complete_cmd() argument
590 struct pscsi_dev_virt *pdv = PSCSI_DEV(cmd->se_dev); in pscsi_complete_cmd()
592 unsigned char *cdb = cmd->priv; in pscsi_complete_cmd()
604 if (!cmd->data_length) in pscsi_complete_cmd()
609 bool read_only = target_lun_is_rdonly(cmd); in pscsi_complete_cmd()
614 buf = transport_kmap_data_sg(cmd); in pscsi_complete_cmd()
626 transport_kunmap_data_sg(cmd); in pscsi_complete_cmd()
632 if (sd->type != TYPE_TAPE || !cmd->data_length) in pscsi_complete_cmd()
649 buf = sg_virt(&cmd->t_data_sg[0]); in pscsi_complete_cmd()
673 transport_copy_sense_to_cmd(cmd, req_sense); in pscsi_complete_cmd()
682 cmd->data_direction == DMA_FROM_DEVICE) { in pscsi_complete_cmd()
691 cmd->se_cmd_flags |= SCF_TREAT_READ_AS_NORMAL; in pscsi_complete_cmd()
823 pscsi_map_sg(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents, in pscsi_map_sg() argument
826 struct pscsi_dev_virt *pdv = PSCSI_DEV(cmd->se_dev); in pscsi_map_sg()
830 u32 data_len = cmd->data_length, i, len, bytes, off; in pscsi_map_sg()
831 int nr_pages = (cmd->data_length + sgl[0].offset + in pscsi_map_sg()
834 int rw = (cmd->data_direction == DMA_TO_DEVICE); in pscsi_map_sg()
836 BUG_ON(!cmd->data_length); in pscsi_map_sg()
925 pscsi_parse_cdb(struct se_cmd *cmd) in pscsi_parse_cdb() argument
927 if (cmd->se_cmd_flags & SCF_BIDI) in pscsi_parse_cdb()
930 return passthrough_parse_cdb(cmd, pscsi_execute_cmd); in pscsi_parse_cdb()
934 pscsi_execute_cmd(struct se_cmd *cmd) in pscsi_execute_cmd() argument
936 struct scatterlist *sgl = cmd->t_data_sg; in pscsi_execute_cmd()
937 u32 sgl_nents = cmd->t_data_nents; in pscsi_execute_cmd()
938 struct pscsi_dev_virt *pdv = PSCSI_DEV(cmd->se_dev); in pscsi_execute_cmd()
944 cmd->data_direction == DMA_TO_DEVICE ? in pscsi_execute_cmd()
950 ret = pscsi_map_sg(cmd, sgl, sgl_nents, req); in pscsi_execute_cmd()
956 req->end_io_data = cmd; in pscsi_execute_cmd()
959 scmd->cmd_len = scsi_command_size(cmd->t_task_cdb); in pscsi_execute_cmd()
964 memcpy(scmd->cmnd, cmd->t_task_cdb, scmd->cmd_len); in pscsi_execute_cmd()
973 cmd->priv = scmd->cmnd; in pscsi_execute_cmd()
975 blk_execute_rq_nowait(req, cmd->sam_task_attr == TCM_HEAD_TAG); in pscsi_execute_cmd()
1008 struct se_cmd *cmd = req->end_io_data; in pscsi_req_done() local
1011 int valid_data = cmd->data_length - scmd->resid_len; in pscsi_req_done()
1012 u8 *cdb = cmd->priv; in pscsi_req_done()
1016 " 0x%02x Result: 0x%08x\n", cmd, cdb[0], scmd->result); in pscsi_req_done()
1019 pscsi_complete_cmd(cmd, scsi_status, scmd->sense_buffer, valid_data); in pscsi_req_done()
1023 target_complete_cmd_with_length(cmd, scsi_status, valid_data); in pscsi_req_done()
1027 " 0x%02x Result: 0x%08x\n", cmd, cdb[0], scmd->result); in pscsi_req_done()
1028 target_complete_cmd(cmd, SAM_STAT_CHECK_CONDITION); in pscsi_req_done()