Lines Matching refs:scsi_cmd
664 ipr_cmd->scsi_cmd = NULL;
864 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
866 scsi_cmd->result |= (DID_ERROR << 16);
868 scsi_dma_unmap(ipr_cmd->scsi_cmd);
869 scsi_cmd->scsi_done(scsi_cmd);
921 if (ipr_cmd->scsi_cmd)
5071 if (ipr_cmd->scsi_cmd && ipr_cmd->scsi_cmd->device == device)
5326 * @scsi_cmd: scsi command struct
5335 static int __ipr_eh_dev_reset(struct scsi_cmnd *scsi_cmd)
5345 ioa_cfg = (struct ipr_ioa_cfg *) scsi_cmd->device->host->hostdata;
5346 res = scsi_cmd->device->hostdata;
5379 scmd_printk(KERN_ERR, scsi_cmd, "Resetting device\n");
5383 spin_unlock_irq(scsi_cmd->device->host->host_lock);
5385 spin_lock_irq(scsi_cmd->device->host->host_lock);
5500 * @scsi_cmd: scsi command struct
5507 static int ipr_cancel_op(struct scsi_cmnd *scsi_cmd)
5518 ioa_cfg = (struct ipr_ioa_cfg *)scsi_cmd->device->host->hostdata;
5519 res = scsi_cmd->device->hostdata;
5544 if (ioa_cfg->ipr_cmnd_list[i]->scsi_cmd == scsi_cmd) {
5562 ipr_cmd->u.sdev = scsi_cmd->device;
5564 scmd_printk(KERN_ERR, scsi_cmd, "Aborting command: %02X\n",
5565 scsi_cmd->cmnd[0]);
5611 * @scsi_cmd: scsi command struct
5616 static int ipr_eh_abort(struct scsi_cmnd *scsi_cmd)
5624 ioa_cfg = (struct ipr_ioa_cfg *) scsi_cmd->device->host->hostdata;
5626 spin_lock_irqsave(scsi_cmd->device->host->host_lock, flags);
5627 rc = ipr_cancel_op(scsi_cmd);
5628 spin_unlock_irqrestore(scsi_cmd->device->host->host_lock, flags);
5631 rc = ipr_wait_for_ops(ioa_cfg, scsi_cmd->device, ipr_match_lun);
5940 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
5944 length = scsi_bufflen(scsi_cmd);
5948 nseg = scsi_dma_map(scsi_cmd);
5961 if (scsi_cmd->sc_data_direction == DMA_TO_DEVICE) {
5964 } else if (scsi_cmd->sc_data_direction == DMA_FROM_DEVICE)
5967 scsi_for_each_sg(scsi_cmd, sg, ipr_cmd->dma_use_sg, i) {
5992 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
5996 length = scsi_bufflen(scsi_cmd);
6000 nseg = scsi_dma_map(scsi_cmd);
6008 if (scsi_cmd->sc_data_direction == DMA_TO_DEVICE) {
6014 } else if (scsi_cmd->sc_data_direction == DMA_FROM_DEVICE) {
6028 scsi_for_each_sg(scsi_cmd, sg, ipr_cmd->dma_use_sg, i) {
6042 * This function copies the sense buffer into the scsi_cmd
6050 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
6051 struct ipr_resource_entry *res = scsi_cmd->device->hostdata;
6055 scsi_cmd->result |= (DID_ERROR << 16);
6056 scmd_printk(KERN_ERR, scsi_cmd,
6059 memcpy(scsi_cmd->sense_buffer, ipr_cmd->sense_buffer,
6068 scsi_dma_unmap(ipr_cmd->scsi_cmd);
6069 scsi_cmd->scsi_done(scsi_cmd);
6079 * This function copies the sense buffer into the scsi_cmd
6196 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
6197 struct ipr_resource_entry *res = scsi_cmd->device->hostdata;
6204 if (!scsi_cmd->device->simple_tags) {
6295 u8 *sense_buf = ipr_cmd->scsi_cmd->sense_buffer;
6296 struct ipr_resource_entry *res = ipr_cmd->scsi_cmd->device->hostdata;
6305 ipr_cmd->scsi_cmd->result = SAM_STAT_CHECK_CONDITION;
6380 * in the scsi_cmd, if there is autosense available.
6394 memcpy(ipr_cmd->scsi_cmd->sense_buffer, ioasa64->auto_sense.data,
6398 memcpy(ipr_cmd->scsi_cmd->sense_buffer, ioasa->auto_sense.data,
6418 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
6419 struct ipr_resource_entry *res = scsi_cmd->device->hostdata;
6436 scsi_cmd->result |= (DID_ABORT << 16);
6438 scsi_cmd->result |= (DID_IMM_RETRY << 16);
6442 scsi_cmd->result |= (DID_NO_CONNECT << 16);
6445 scsi_cmd->result |= (DID_NO_CONNECT << 16);
6452 scsi_cmd->result |= (DID_IMM_RETRY << 16);
6460 if (scsi_cmd->result != SAM_STAT_CHECK_CONDITION)
6461 scsi_cmd->result |= (DID_PASSTHROUGH << 16);
6470 scsi_report_bus_reset(ioa_cfg->host, scsi_cmd->device->channel);
6471 scsi_cmd->result |= (DID_ERROR << 16);
6476 scsi_cmd->result |= IPR_IOASC_SENSE_STATUS(ioasc);
6493 scsi_cmd->result |= (DID_IMM_RETRY << 16);
6495 scsi_cmd->result |= (DID_ERROR << 16);
6499 scsi_cmd->result |= (DID_ERROR << 16);
6505 scsi_dma_unmap(ipr_cmd->scsi_cmd);
6506 scsi_cmd->scsi_done(scsi_cmd);
6525 struct scsi_cmnd *scsi_cmd = ipr_cmd->scsi_cmd;
6529 scsi_set_resid(scsi_cmd, be32_to_cpu(ipr_cmd->s.ioasa.hdr.residual_data_len));
6532 scsi_dma_unmap(scsi_cmd);
6535 scsi_cmd->scsi_done(scsi_cmd);
6552 * @scsi_cmd: scsi command struct
6562 struct scsi_cmnd *scsi_cmd)
6575 scsi_cmd->result = (DID_OK << 16);
6576 res = scsi_cmd->device->hostdata;
6580 rc = ata_sas_queuecmd(scsi_cmd, res->sata_port->ap);
6618 memcpy(ioarcb->cmd_pkt.cdb, scsi_cmd->cmnd, scsi_cmd->cmd_len);
6619 ipr_cmd->scsi_cmd = scsi_cmd;
6623 if (scsi_cmd->underflow == 0)
6636 if (scsi_cmd->flags & SCMD_TAGGED)
6642 if (scsi_cmd->cmnd[0] >= 0xC0 &&
6643 (!ipr_is_gscsi(res) || scsi_cmd->cmnd[0] == IPR_QUERY_RSRC_STATE)) {
6649 if (scsi_cmd->underflow == 0)
6663 scsi_dma_unmap(scsi_cmd);
6670 scsi_dma_unmap(scsi_cmd);
6687 memset(scsi_cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
6688 scsi_cmd->result = (DID_NO_CONNECT << 16);
6689 scsi_cmd->scsi_done(scsi_cmd);