Lines Matching refs:scmd
1532 static int myrs_host_reset(struct scsi_cmnd *scmd)
1534 struct Scsi_Host *shost = scmd->device->host;
1541 static void myrs_mode_sense(struct myrs_hba *cs, struct scsi_cmnd *scmd,
1548 dbd = (scmd->cmnd[1] & 0x08) == 0x08;
1581 scsi_sg_copy_from_buffer(scmd, modes, mode_len);
1585 struct scsi_cmnd *scmd)
1588 struct myrs_cmdblk *cmd_blk = scsi_cmd_priv(scmd);
1590 struct scsi_device *sdev = scmd->device;
1597 if (!scmd->device->hostdata) {
1598 scmd->result = (DID_NO_CONNECT << 16);
1599 scmd->scsi_done(scmd);
1603 switch (scmd->cmnd[0]) {
1605 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST,
1607 scmd->result = (DRIVER_SENSE << 24) | SAM_STAT_CHECK_CONDITION;
1608 scmd->scsi_done(scmd);
1611 if (scmd->device->channel >= cs->ctlr_info->physchan_present) {
1614 if ((scmd->cmnd[2] & 0x3F) != 0x3F &&
1615 (scmd->cmnd[2] & 0x3F) != 0x08) {
1617 scsi_build_sense_buffer(0, scmd->sense_buffer,
1619 scmd->result = (DRIVER_SENSE << 24) |
1622 myrs_mode_sense(cs, scmd, ldev_info);
1623 scmd->result = (DID_OK << 16);
1625 scmd->scsi_done(scmd);
1638 timeout = scmd->request->timeout;
1639 if (scmd->cmd_len <= 10) {
1640 if (scmd->device->channel >= cs->ctlr_info->physchan_present) {
1654 mbox->SCSI_10.id = scmd->request->tag + 3;
1656 (scmd->sc_data_direction == DMA_FROM_DEVICE);
1657 if (scmd->request->cmd_flags & REQ_FUA)
1659 mbox->SCSI_10.dma_size = scsi_bufflen(scmd);
1662 mbox->SCSI_10.cdb_len = scmd->cmd_len;
1670 memcpy(&mbox->SCSI_10.cdb, scmd->cmnd, scmd->cmd_len);
1686 if (scmd->device->channel >= cs->ctlr_info->physchan_present) {
1700 mbox->SCSI_255.id = scmd->request->tag + 3;
1702 (scmd->sc_data_direction == DMA_FROM_DEVICE);
1703 if (scmd->request->cmd_flags & REQ_FUA)
1705 mbox->SCSI_255.dma_size = scsi_bufflen(scmd);
1708 mbox->SCSI_255.cdb_len = scmd->cmd_len;
1717 memcpy(cmd_blk->dcdb, scmd->cmnd, scmd->cmd_len);
1720 if (scmd->sc_data_direction == DMA_NONE)
1722 nsge = scsi_dma_map(scmd);
1724 sgl = scsi_sglist(scmd);
1752 if (scmd->cmd_len <= 10)
1761 scsi_for_each_sg(scmd, sgl, nsge, i) {
1763 scsi_dma_unmap(scmd);
1764 scmd->result = (DID_ERROR << 16);
1765 scmd->scsi_done(scmd);
2052 struct scsi_cmnd *scmd)
2059 scsi_dma_unmap(scmd);
2067 memcpy(scmd->sense_buffer, cmd_blk->sense, sense_len);
2087 scsi_set_resid(scmd, cmd_blk->residual);
2090 scmd->result = (DID_BAD_TARGET << 16);
2092 scmd->result = (DID_OK << 16) | status;
2093 scmd->scsi_done(scmd);
2627 struct scsi_cmnd *scmd = NULL;
2635 scmd = scsi_host_find_tag(cs->host, id - 3);
2636 if (scmd)
2637 cmd_blk = scsi_cmd_priv(scmd);
2655 myrs_handle_scsi(cs, cmd_blk, scmd);
2877 struct scsi_cmnd *scmd = NULL;
2885 scmd = scsi_host_find_tag(cs->host, id - 3);
2886 if (scmd)
2887 cmd_blk = scsi_cmd_priv(scmd);
2905 myrs_handle_scsi(cs, cmd_blk, scmd);
3127 struct scsi_cmnd *scmd = NULL;
3135 scmd = scsi_host_find_tag(cs->host, id - 3);
3136 if (scmd)
3137 cmd_blk = scsi_cmd_priv(scmd);
3155 myrs_handle_scsi(cs, cmd_blk, scmd);