Lines Matching refs:scmd

1530 	struct scsi_cmnd *scmd;  in _scsih_scsi_lookup_find_by_target()  local
1534 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid); in _scsih_scsi_lookup_find_by_target()
1535 if (!scmd) in _scsih_scsi_lookup_find_by_target()
1537 if (scmd->device->id == id && in _scsih_scsi_lookup_find_by_target()
1538 scmd->device->channel == channel) in _scsih_scsi_lookup_find_by_target()
1560 struct scsi_cmnd *scmd; in _scsih_scsi_lookup_find_by_lun() local
1564 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid); in _scsih_scsi_lookup_find_by_lun()
1565 if (!scmd) in _scsih_scsi_lookup_find_by_lun()
1567 if (scmd->device->id == id && in _scsih_scsi_lookup_find_by_lun()
1568 scmd->device->channel == channel && in _scsih_scsi_lookup_find_by_lun()
1569 scmd->device->lun == lun) in _scsih_scsi_lookup_find_by_lun()
1586 struct scsi_cmnd *scmd = NULL; in mpt3sas_scsih_scsi_lookup_get() local
1603 return scmd; in mpt3sas_scsih_scsi_lookup_get()
1605 scmd = scsi_host_find_tag(ioc->shost, unique_tag); in mpt3sas_scsih_scsi_lookup_get()
1606 if (scmd) { in mpt3sas_scsih_scsi_lookup_get()
1607 st = scsi_cmd_priv(scmd); in mpt3sas_scsih_scsi_lookup_get()
1609 scmd = NULL; in mpt3sas_scsih_scsi_lookup_get()
1612 return scmd; in mpt3sas_scsih_scsi_lookup_get()
3043 _scsih_tm_display_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd) in _scsih_tm_display_info() argument
3045 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_tm_display_info()
3059 scsi_print_command(scmd); in _scsih_tm_display_info()
3124 scsih_abort(struct scsi_cmnd *scmd) in scsih_abort() argument
3126 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_abort()
3128 struct scsiio_tracker *st = scsi_cmd_priv(scmd); in scsih_abort()
3134 sdev_printk(KERN_INFO, scmd->device, "attempting task abort!" in scsih_abort()
3136 scmd, jiffies_to_msecs(jiffies - scmd->jiffies_at_alloc), in scsih_abort()
3137 (scmd->request->timeout / HZ) * 1000); in scsih_abort()
3138 _scsih_tm_display_info(ioc, scmd); in scsih_abort()
3140 sas_device_priv_data = scmd->device->hostdata; in scsih_abort()
3143 sdev_printk(KERN_INFO, scmd->device, in scsih_abort()
3144 "device been deleted! scmd(0x%p)\n", scmd); in scsih_abort()
3145 scmd->result = DID_NO_CONNECT << 16; in scsih_abort()
3146 scmd->scsi_done(scmd); in scsih_abort()
3153 sdev_printk(KERN_INFO, scmd->device, "No reference found at " in scsih_abort()
3154 "driver, assuming scmd(0x%p) might have completed\n", scmd); in scsih_abort()
3155 scmd->result = DID_RESET << 16; in scsih_abort()
3164 scmd->result = DID_RESET << 16; in scsih_abort()
3176 r = mpt3sas_scsih_issue_locked_tm(ioc, handle, scmd->device->channel, in scsih_abort()
3177 scmd->device->id, scmd->device->lun, in scsih_abort()
3184 sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(0x%p)\n", in scsih_abort()
3185 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_abort()
3198 scsih_dev_reset(struct scsi_cmnd *scmd) in scsih_dev_reset() argument
3200 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_dev_reset()
3209 struct scsi_target *starget = scmd->device->sdev_target; in scsih_dev_reset()
3212 sdev_printk(KERN_INFO, scmd->device, in scsih_dev_reset()
3213 "attempting device reset! scmd(0x%p)\n", scmd); in scsih_dev_reset()
3214 _scsih_tm_display_info(ioc, scmd); in scsih_dev_reset()
3216 sas_device_priv_data = scmd->device->hostdata; in scsih_dev_reset()
3219 sdev_printk(KERN_INFO, scmd->device, in scsih_dev_reset()
3220 "device been deleted! scmd(0x%p)\n", scmd); in scsih_dev_reset()
3221 scmd->result = DID_NO_CONNECT << 16; in scsih_dev_reset()
3222 scmd->scsi_done(scmd); in scsih_dev_reset()
3239 scmd->result = DID_RESET << 16; in scsih_dev_reset()
3253 r = mpt3sas_scsih_issue_locked_tm(ioc, handle, scmd->device->channel, in scsih_dev_reset()
3254 scmd->device->id, scmd->device->lun, in scsih_dev_reset()
3258 if (r == SUCCESS && atomic_read(&scmd->device->device_busy)) in scsih_dev_reset()
3261 sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(0x%p)\n", in scsih_dev_reset()
3262 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_dev_reset()
3279 scsih_target_reset(struct scsi_cmnd *scmd) in scsih_target_reset() argument
3281 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_target_reset()
3289 struct scsi_target *starget = scmd->device->sdev_target; in scsih_target_reset()
3293 "attempting target reset! scmd(0x%p)\n", scmd); in scsih_target_reset()
3294 _scsih_tm_display_info(ioc, scmd); in scsih_target_reset()
3296 sas_device_priv_data = scmd->device->hostdata; in scsih_target_reset()
3300 "target been deleted! scmd(0x%p)\n", scmd); in scsih_target_reset()
3301 scmd->result = DID_NO_CONNECT << 16; in scsih_target_reset()
3302 scmd->scsi_done(scmd); in scsih_target_reset()
3319 scmd->result = DID_RESET << 16; in scsih_target_reset()
3332 r = mpt3sas_scsih_issue_locked_tm(ioc, handle, scmd->device->channel, in scsih_target_reset()
3333 scmd->device->id, 0, in scsih_target_reset()
3341 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_target_reset()
3358 scsih_host_reset(struct scsi_cmnd *scmd) in scsih_host_reset() argument
3360 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_host_reset()
3363 ioc_info(ioc, "attempting host reset! scmd(0x%p)\n", scmd); in scsih_host_reset()
3364 scsi_print_command(scmd); in scsih_host_reset()
3376 r == SUCCESS ? "SUCCESS" : "FAILED", scmd); in scsih_host_reset()
4103 struct scsi_cmnd *scmd) in _scsih_allow_scmd_to_device() argument
4118 switch (scmd->cmnd[0]) { in _scsih_allow_scmd_to_device()
4791 static int _scsih_set_satl_pending(struct scsi_cmnd *scmd, bool pending) in _scsih_set_satl_pending() argument
4793 struct MPT3SAS_DEVICE *priv = scmd->device->hostdata; in _scsih_set_satl_pending()
4795 if (scmd->cmnd[0] != ATA_12 && scmd->cmnd[0] != ATA_16) in _scsih_set_satl_pending()
4815 struct scsi_cmnd *scmd; in _scsih_flush_running_cmds() local
4821 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid); in _scsih_flush_running_cmds()
4822 if (!scmd) in _scsih_flush_running_cmds()
4825 _scsih_set_satl_pending(scmd, false); in _scsih_flush_running_cmds()
4826 st = scsi_cmd_priv(scmd); in _scsih_flush_running_cmds()
4828 scsi_dma_unmap(scmd); in _scsih_flush_running_cmds()
4830 scmd->result = DID_NO_CONNECT << 16; in _scsih_flush_running_cmds()
4832 scmd->result = DID_RESET << 16; in _scsih_flush_running_cmds()
4833 scmd->scsi_done(scmd); in _scsih_flush_running_cmds()
4847 _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_setup_eedp() argument
4851 unsigned char prot_op = scsi_get_prot_op(scmd); in _scsih_setup_eedp()
4852 unsigned char prot_type = scsi_get_prot_type(scmd); in _scsih_setup_eedp()
4878 cpu_to_be32(t10_pi_ref_tag(scmd->request)); in _scsih_setup_eedp()
4892 cpu_to_le16(scmd->device->sector_size); in _scsih_setup_eedp()
4905 _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status) in _scsih_eedp_error_handling() argument
4923 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x10, in _scsih_eedp_error_handling()
4925 scmd->result = DRIVER_SENSE << 24 | (DID_ABORT << 16) | in _scsih_eedp_error_handling()
4941 scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd) in scsih_qcmd() argument
4947 struct request *rq = scmd->request; in scsih_qcmd()
4956 scsi_print_command(scmd); in scsih_qcmd()
4958 sas_device_priv_data = scmd->device->hostdata; in scsih_qcmd()
4960 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
4961 scmd->scsi_done(scmd); in scsih_qcmd()
4965 if (!(_scsih_allow_scmd_to_device(ioc, scmd))) { in scsih_qcmd()
4966 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
4967 scmd->scsi_done(scmd); in scsih_qcmd()
4976 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
4977 scmd->scsi_done(scmd); in scsih_qcmd()
4987 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
4988 scmd->scsi_done(scmd); in scsih_qcmd()
5004 } while (_scsih_set_satl_pending(scmd, true)); in scsih_qcmd()
5006 if (scmd->sc_data_direction == DMA_FROM_DEVICE) in scsih_qcmd()
5008 else if (scmd->sc_data_direction == DMA_TO_DEVICE) in scsih_qcmd()
5024 if (((!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev)) in scsih_qcmd()
5025 && !scsih_is_nvme(&scmd->device->sdev_gendev)) in scsih_qcmd()
5026 && sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32) in scsih_qcmd()
5029 smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd); in scsih_qcmd()
5032 _scsih_set_satl_pending(scmd, false); in scsih_qcmd()
5037 _scsih_setup_eedp(ioc, scmd, mpi_request); in scsih_qcmd()
5039 if (scmd->cmd_len == 32) in scsih_qcmd()
5048 mpi_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); in scsih_qcmd()
5050 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len); in scsih_qcmd()
5058 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in scsih_qcmd()
5062 if (ioc->build_sg_scmd(ioc, scmd, smid, pcie_device)) { in scsih_qcmd()
5064 _scsih_set_satl_pending(scmd, false); in scsih_qcmd()
5072 mpt3sas_setup_direct_io(ioc, scmd, in scsih_qcmd()
5077 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len | in scsih_qcmd()
5124 _scsih_scsi_ioc_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_scsi_ioc_info() argument
5139 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_scsi_ioc_info()
5266 scsi_print_command(scmd); in _scsih_scsi_ioc_info()
5303 scsi_bufflen(scmd), scmd->underflow, scsi_get_resid(scmd)); in _scsih_scsi_ioc_info()
5306 le32_to_cpu(mpi_reply->TransferCount), scmd->result); in _scsih_scsi_ioc_info()
5312 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_scsi_ioc_info()
5513 struct scsi_cmnd *scmd; in _scsih_io_done() local
5525 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid); in _scsih_io_done()
5526 if (scmd == NULL) in _scsih_io_done()
5529 _scsih_set_satl_pending(scmd, false); in _scsih_io_done()
5534 scmd->result = DID_OK << 16; in _scsih_io_done()
5538 sas_device_priv_data = scmd->device->hostdata; in _scsih_io_done()
5541 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
5550 st = scsi_cmd_priv(scmd); in _scsih_io_done()
5555 st->scmd = scmd; in _scsih_io_done()
5556 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in _scsih_io_done()
5571 !scsih_is_raid(&scmd->device->sdev_gendev) && in _scsih_io_done()
5572 !scsih_is_nvme(&scmd->device->sdev_gendev)) in _scsih_io_done()
5573 && sas_is_tlr_enabled(scmd->device) && in _scsih_io_done()
5575 sas_disable_tlr(scmd->device); in _scsih_io_done()
5576 sdev_printk(KERN_INFO, scmd->device, "TLR disabled\n"); in _scsih_io_done()
5581 scsi_set_resid(scmd, scsi_bufflen(scmd) - xfer_cnt); in _scsih_io_done()
5602 memcpy(scmd->sense_buffer, sense_data, sz); in _scsih_io_done()
5603 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_io_done()
5611 ((scmd->sense_buffer[2] == UNIT_ATTENTION) || in _scsih_io_done()
5612 (scmd->sense_buffer[2] == MEDIUM_ERROR) || in _scsih_io_done()
5613 (scmd->sense_buffer[2] == HARDWARE_ERROR))) in _scsih_io_done()
5614 _scsih_scsi_ioc_info(ioc, scmd, mpi_reply, smid); in _scsih_io_done()
5619 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
5623 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
5628 scmd->result = DID_TRANSPORT_DISRUPTED << 16; in _scsih_io_done()
5632 if (scmd->retries > 2) { in _scsih_io_done()
5633 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
5634 scsi_device_set_state(scmd->device, in _scsih_io_done()
5637 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5638 scmd->device->expecting_cc_ua = 1; in _scsih_io_done()
5642 scmd->result = DID_RESET << 16; in _scsih_io_done()
5644 } else if ((scmd->device->channel == RAID_CHANNEL) && in _scsih_io_done()
5647 scmd->result = DID_RESET << 16; in _scsih_io_done()
5650 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5654 scmd->result = DID_RESET << 16; in _scsih_io_done()
5658 if ((xfer_cnt == 0) || (scmd->underflow > xfer_cnt)) in _scsih_io_done()
5659 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5661 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
5665 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
5670 if (xfer_cnt < scmd->underflow) { in _scsih_io_done()
5672 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
5674 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5677 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5679 scmd->result = DID_RESET << 16; in _scsih_io_done()
5680 else if (!xfer_cnt && scmd->cmnd[0] == REPORT_LUNS) { in _scsih_io_done()
5683 scmd->result = (DRIVER_SENSE << 24) | in _scsih_io_done()
5685 scmd->sense_buffer[0] = 0x70; in _scsih_io_done()
5686 scmd->sense_buffer[2] = ILLEGAL_REQUEST; in _scsih_io_done()
5687 scmd->sense_buffer[12] = 0x20; in _scsih_io_done()
5688 scmd->sense_buffer[13] = 0; in _scsih_io_done()
5693 scsi_set_resid(scmd, 0); in _scsih_io_done()
5697 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
5702 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5704 scmd->result = DID_RESET << 16; in _scsih_io_done()
5710 _scsih_eedp_error_handling(scmd, ioc_status); in _scsih_io_done()
5723 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
5728 if (scmd->result && (ioc->logging_level & MPT_DEBUG_REPLY)) in _scsih_io_done()
5729 _scsih_scsi_ioc_info(ioc , scmd, mpi_reply, smid); in _scsih_io_done()
5733 scsi_dma_unmap(scmd); in _scsih_io_done()
5735 scmd->scsi_done(scmd); in _scsih_io_done()
7682 struct scsi_cmnd *scmd; in _scsih_sas_broadcast_primitive_event() local
7724 scmd = mpt3sas_scsih_scsi_lookup_get(ioc, smid); in _scsih_sas_broadcast_primitive_event()
7725 if (!scmd) in _scsih_sas_broadcast_primitive_event()
7727 st = scsi_cmd_priv(scmd); in _scsih_sas_broadcast_primitive_event()
7728 sdev = scmd->device; in _scsih_sas_broadcast_primitive_event()
7759 "QUERY_TASK: scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
7768 ioc_status, scmd); in _scsih_sas_broadcast_primitive_event()
7800 "scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
7808 task_abort_retries - 1, scmd); in _scsih_sas_broadcast_primitive_event()