Lines Matching refs:scmd
887 return ioc->scsi_lookup[smid - 1].scmd; in _scsih_scsi_lookup_get()
902 struct scsi_cmnd *scmd; in _scsih_scsi_lookup_get_clear() local
905 scmd = ioc->scsi_lookup[smid - 1].scmd; in _scsih_scsi_lookup_get_clear()
906 ioc->scsi_lookup[smid - 1].scmd = NULL; in _scsih_scsi_lookup_get_clear()
909 return scmd; in _scsih_scsi_lookup_get_clear()
924 *scmd) in _scsih_scsi_lookup_find_by_scmd()
933 if (ioc->scsi_lookup[i].scmd == scmd) { in _scsih_scsi_lookup_find_by_scmd()
964 if (ioc->scsi_lookup[i].scmd && in _scsih_scsi_lookup_find_by_target()
965 (ioc->scsi_lookup[i].scmd->device->id == id && in _scsih_scsi_lookup_find_by_target()
966 ioc->scsi_lookup[i].scmd->device->channel == channel)) { in _scsih_scsi_lookup_find_by_target()
998 if (ioc->scsi_lookup[i].scmd && in _scsih_scsi_lookup_find_by_lun()
999 (ioc->scsi_lookup[i].scmd->device->id == id && in _scsih_scsi_lookup_find_by_lun()
1000 ioc->scsi_lookup[i].scmd->device->channel == channel && in _scsih_scsi_lookup_find_by_lun()
1001 ioc->scsi_lookup[i].scmd->device->lun == lun)) { in _scsih_scsi_lookup_find_by_lun()
1054 struct scsi_cmnd *scmd, u16 smid) in _scsih_build_scatter_gather() argument
1074 if (scmd->sc_data_direction == DMA_TO_DEVICE) in _scsih_build_scatter_gather()
1083 sg_scmd = scsi_sglist(scmd); in _scsih_build_scatter_gather()
1084 sges_left = scsi_dma_map(scmd); in _scsih_build_scatter_gather()
1086 sdev_printk(KERN_ERR, scmd->device, "pci_map_sg" in _scsih_build_scatter_gather()
1087 " failed: request for %d bytes!\n", scsi_bufflen(scmd)); in _scsih_build_scatter_gather()
2442 if (scsi_lookup->scmd == NULL) in mpt2sas_scsih_issue_tm()
2490 _scsih_tm_display_info(struct MPT2SAS_ADAPTER *ioc, struct scsi_cmnd *scmd) in _scsih_tm_display_info() argument
2492 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_tm_display_info()
2505 scsi_print_command(scmd); in _scsih_tm_display_info()
2544 _scsih_abort(struct scsi_cmnd *scmd) in _scsih_abort() argument
2546 struct MPT2SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_abort()
2552 sdev_printk(KERN_INFO, scmd->device, "attempting task abort! " in _scsih_abort()
2553 "scmd(%p)\n", scmd); in _scsih_abort()
2554 _scsih_tm_display_info(ioc, scmd); in _scsih_abort()
2556 sas_device_priv_data = scmd->device->hostdata; in _scsih_abort()
2558 sdev_printk(KERN_INFO, scmd->device, "device been deleted! " in _scsih_abort()
2559 "scmd(%p)\n", scmd); in _scsih_abort()
2560 scmd->result = DID_NO_CONNECT << 16; in _scsih_abort()
2561 scmd->scsi_done(scmd); in _scsih_abort()
2567 smid = _scsih_scsi_lookup_find_by_scmd(ioc, scmd); in _scsih_abort()
2569 scmd->result = DID_RESET << 16; in _scsih_abort()
2578 scmd->result = DID_RESET << 16; in _scsih_abort()
2586 r = mpt2sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in _scsih_abort()
2587 scmd->device->id, scmd->device->lun, in _scsih_abort()
2591 sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(%p)\n", in _scsih_abort()
2592 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_abort()
2603 _scsih_dev_reset(struct scsi_cmnd *scmd) in _scsih_dev_reset() argument
2605 struct MPT2SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_dev_reset()
2612 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_dev_reset()
2615 "scmd(%p)\n", scmd); in _scsih_dev_reset()
2616 _scsih_tm_display_info(ioc, scmd); in _scsih_dev_reset()
2618 sas_device_priv_data = scmd->device->hostdata; in _scsih_dev_reset()
2621 "scmd(%p)\n", scmd); in _scsih_dev_reset()
2622 scmd->result = DID_NO_CONNECT << 16; in _scsih_dev_reset()
2623 scmd->scsi_done(scmd); in _scsih_dev_reset()
2642 scmd->result = DID_RESET << 16; in _scsih_dev_reset()
2647 r = mpt2sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in _scsih_dev_reset()
2648 scmd->device->id, scmd->device->lun, in _scsih_dev_reset()
2652 sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(%p)\n", in _scsih_dev_reset()
2653 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_dev_reset()
2664 _scsih_target_reset(struct scsi_cmnd *scmd) in _scsih_target_reset() argument
2666 struct MPT2SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_target_reset()
2672 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_target_reset()
2675 "scmd(%p)\n", scmd); in _scsih_target_reset()
2676 _scsih_tm_display_info(ioc, scmd); in _scsih_target_reset()
2678 sas_device_priv_data = scmd->device->hostdata; in _scsih_target_reset()
2681 "scmd(%p)\n", scmd); in _scsih_target_reset()
2682 scmd->result = DID_NO_CONNECT << 16; in _scsih_target_reset()
2683 scmd->scsi_done(scmd); in _scsih_target_reset()
2702 scmd->result = DID_RESET << 16; in _scsih_target_reset()
2707 r = mpt2sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in _scsih_target_reset()
2708 scmd->device->id, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, in _scsih_target_reset()
2713 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_target_reset()
2724 _scsih_host_reset(struct scsi_cmnd *scmd) in _scsih_host_reset() argument
2726 struct MPT2SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in _scsih_host_reset()
2730 ioc->name, scmd); in _scsih_host_reset()
2731 scsi_print_command(scmd); in _scsih_host_reset()
2746 ioc->name, ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in _scsih_host_reset()
3696 struct scsi_cmnd *scmd; in _scsih_flush_running_cmds() local
3701 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); in _scsih_flush_running_cmds()
3702 if (!scmd) in _scsih_flush_running_cmds()
3706 scsi_dma_unmap(scmd); in _scsih_flush_running_cmds()
3708 scmd->result = DID_NO_CONNECT << 16; in _scsih_flush_running_cmds()
3710 scmd->result = DID_RESET << 16; in _scsih_flush_running_cmds()
3711 scmd->scsi_done(scmd); in _scsih_flush_running_cmds()
3727 _scsih_setup_eedp(struct scsi_cmnd *scmd, Mpi2SCSIIORequest_t *mpi_request) in _scsih_setup_eedp() argument
3730 unsigned char prot_op = scsi_get_prot_op(scmd); in _scsih_setup_eedp()
3731 unsigned char prot_type = scsi_get_prot_type(scmd); in _scsih_setup_eedp()
3755 cpu_to_be32(scsi_get_lba(scmd)); in _scsih_setup_eedp()
3766 mpi_request->EEDPBlockSize = cpu_to_le32(scmd->device->sector_size); in _scsih_setup_eedp()
3778 _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status) in _scsih_eedp_error_handling() argument
3797 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x10, ascq); in _scsih_eedp_error_handling()
3798 scmd->result = DRIVER_SENSE << 24 | (DID_ABORT << 16) | in _scsih_eedp_error_handling()
3841 _scsih_setup_direct_io(struct MPT2SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_setup_direct_io() argument
3847 u8 num_pds, cmd = scmd->cmnd[0]; in _scsih_setup_direct_io()
3858 io_size = scsi_bufflen(scmd) >> raid_device->block_exponent; in _scsih_setup_direct_io()
3899 _scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd) in _scsih_qcmd() argument
3909 sas_device_priv_data = scmd->device->hostdata; in _scsih_qcmd()
3911 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3912 scmd->scsi_done(scmd); in _scsih_qcmd()
3917 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3918 scmd->scsi_done(scmd); in _scsih_qcmd()
3925 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3926 scmd->scsi_done(scmd); in _scsih_qcmd()
3938 scmd->result = DID_NO_CONNECT << 16; in _scsih_qcmd()
3939 scmd->scsi_done(scmd); in _scsih_qcmd()
3943 if (scmd->sc_data_direction == DMA_FROM_DEVICE) in _scsih_qcmd()
3945 else if (scmd->sc_data_direction == DMA_TO_DEVICE) in _scsih_qcmd()
3956 if (!ioc->is_warpdrive && !_scsih_is_raid(&scmd->device->sdev_gendev) && in _scsih_qcmd()
3957 sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32) in _scsih_qcmd()
3960 smid = mpt2sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd); in _scsih_qcmd()
3968 _scsih_setup_eedp(scmd, mpi_request); in _scsih_qcmd()
3969 if (scmd->cmd_len == 32) in _scsih_qcmd()
3979 mpi_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); in _scsih_qcmd()
3981 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len); in _scsih_qcmd()
3993 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in _scsih_qcmd()
3998 if (_scsih_build_scatter_gather(ioc, scmd, smid)) { in _scsih_qcmd()
4006 _scsih_setup_direct_io(ioc, scmd, raid_device, mpi_request, in _scsih_qcmd()
4057 _scsih_scsi_ioc_info(struct MPT2SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_scsi_ioc_info() argument
4072 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_scsi_ioc_info()
4197 scsi_print_command(scmd); in _scsih_scsi_ioc_info()
4222 "resid(%d)\n", ioc->name, scsi_bufflen(scmd), scmd->underflow, in _scsih_scsi_ioc_info()
4223 scsi_get_resid(scmd)); in _scsih_scsi_ioc_info()
4226 le32_to_cpu(mpi_reply->TransferCount), scmd->result); in _scsih_scsi_ioc_info()
4233 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_scsi_ioc_info()
4435 struct scsi_cmnd *scmd; in _scsih_io_done() local
4446 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); in _scsih_io_done()
4447 if (scmd == NULL) in _scsih_io_done()
4453 scmd->result = DID_OK << 16; in _scsih_io_done()
4457 sas_device_priv_data = scmd->device->hostdata; in _scsih_io_done()
4460 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4472 ioc->scsi_lookup[smid - 1].scmd = scmd; in _scsih_io_done()
4475 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in _scsih_io_done()
4494 if (!ioc->is_warpdrive && !_scsih_is_raid(&scmd->device->sdev_gendev) && in _scsih_io_done()
4495 sas_is_tlr_enabled(scmd->device) && in _scsih_io_done()
4497 sas_disable_tlr(scmd->device); in _scsih_io_done()
4498 sdev_printk(KERN_INFO, scmd->device, "TLR disabled\n"); in _scsih_io_done()
4503 scsi_set_resid(scmd, scsi_bufflen(scmd) - xfer_cnt); in _scsih_io_done()
4524 memcpy(scmd->sense_buffer, sense_data, sz); in _scsih_io_done()
4525 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_io_done()
4535 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
4539 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4544 scmd->result = DID_TRANSPORT_DISRUPTED << 16; in _scsih_io_done()
4548 scmd->result = DID_RESET << 16; in _scsih_io_done()
4551 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4555 scmd->result = DID_RESET << 16; in _scsih_io_done()
4559 if ((xfer_cnt == 0) || (scmd->underflow > xfer_cnt)) in _scsih_io_done()
4560 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4562 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4566 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4571 if (xfer_cnt < scmd->underflow) { in _scsih_io_done()
4573 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
4575 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4578 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4580 scmd->result = DID_RESET << 16; in _scsih_io_done()
4581 else if (!xfer_cnt && scmd->cmnd[0] == REPORT_LUNS) { in _scsih_io_done()
4584 scmd->result = (DRIVER_SENSE << 24) | in _scsih_io_done()
4586 scmd->sense_buffer[0] = 0x70; in _scsih_io_done()
4587 scmd->sense_buffer[2] = ILLEGAL_REQUEST; in _scsih_io_done()
4588 scmd->sense_buffer[12] = 0x20; in _scsih_io_done()
4589 scmd->sense_buffer[13] = 0; in _scsih_io_done()
4594 scsi_set_resid(scmd, 0); in _scsih_io_done()
4597 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4602 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4604 scmd->result = DID_RESET << 16; in _scsih_io_done()
4610 _scsih_eedp_error_handling(scmd, ioc_status); in _scsih_io_done()
4621 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4627 if (scmd->result && (ioc->logging_level & MPT_DEBUG_REPLY)) in _scsih_io_done()
4628 _scsih_scsi_ioc_info(ioc , scmd, mpi_reply, smid); in _scsih_io_done()
4632 scsi_dma_unmap(scmd); in _scsih_io_done()
4633 scmd->scsi_done(scmd); in _scsih_io_done()
5809 struct scsi_cmnd *scmd; in _scsih_sas_broadcast_primitive_event() local
5852 scmd = _scsih_scsi_lookup_get(ioc, smid); in _scsih_sas_broadcast_primitive_event()
5853 if (!scmd) in _scsih_sas_broadcast_primitive_event()
5855 sdev = scmd->device; in _scsih_sas_broadcast_primitive_event()
5882 "QUERY_TASK: scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
5891 scmd); in _scsih_sas_broadcast_primitive_event()
5923 "scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
5931 task_abort_retries - 1, scmd); in _scsih_sas_broadcast_primitive_event()