Lines Matching refs:scmd

1069 	return ioc->scsi_lookup[smid - 1].scmd;  in _scsih_scsi_lookup_get()
1084 struct scsi_cmnd *scmd; in _scsih_scsi_lookup_get_clear() local
1087 scmd = ioc->scsi_lookup[smid - 1].scmd; in _scsih_scsi_lookup_get_clear()
1088 ioc->scsi_lookup[smid - 1].scmd = NULL; in _scsih_scsi_lookup_get_clear()
1091 return scmd; in _scsih_scsi_lookup_get_clear()
1106 *scmd) in _scsih_scsi_lookup_find_by_scmd()
1115 if (ioc->scsi_lookup[i].scmd == scmd) { in _scsih_scsi_lookup_find_by_scmd()
1146 if (ioc->scsi_lookup[i].scmd && in _scsih_scsi_lookup_find_by_target()
1147 (ioc->scsi_lookup[i].scmd->device->id == id && in _scsih_scsi_lookup_find_by_target()
1148 ioc->scsi_lookup[i].scmd->device->channel == channel)) { in _scsih_scsi_lookup_find_by_target()
1180 if (ioc->scsi_lookup[i].scmd && in _scsih_scsi_lookup_find_by_lun()
1181 (ioc->scsi_lookup[i].scmd->device->id == id && in _scsih_scsi_lookup_find_by_lun()
1182 ioc->scsi_lookup[i].scmd->device->channel == channel && in _scsih_scsi_lookup_find_by_lun()
1183 ioc->scsi_lookup[i].scmd->device->lun == lun)) { in _scsih_scsi_lookup_find_by_lun()
2295 if (scsi_lookup->scmd == NULL) in mpt3sas_scsih_issue_tm()
2342 _scsih_tm_display_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd) in _scsih_tm_display_info() argument
2344 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_tm_display_info()
2357 scsi_print_command(scmd); in _scsih_tm_display_info()
2405 scsih_abort(struct scsi_cmnd *scmd) in scsih_abort() argument
2407 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_abort()
2413 sdev_printk(KERN_INFO, scmd->device, in scsih_abort()
2414 "attempting task abort! scmd(%p)\n", scmd); in scsih_abort()
2415 _scsih_tm_display_info(ioc, scmd); in scsih_abort()
2417 sas_device_priv_data = scmd->device->hostdata; in scsih_abort()
2419 sdev_printk(KERN_INFO, scmd->device, in scsih_abort()
2420 "device been deleted! scmd(%p)\n", scmd); in scsih_abort()
2421 scmd->result = DID_NO_CONNECT << 16; in scsih_abort()
2422 scmd->scsi_done(scmd); in scsih_abort()
2428 smid = _scsih_scsi_lookup_find_by_scmd(ioc, scmd); in scsih_abort()
2430 scmd->result = DID_RESET << 16; in scsih_abort()
2439 scmd->result = DID_RESET << 16; in scsih_abort()
2447 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in scsih_abort()
2448 scmd->device->id, scmd->device->lun, in scsih_abort()
2452 sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(%p)\n", in scsih_abort()
2453 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_abort()
2464 scsih_dev_reset(struct scsi_cmnd *scmd) in scsih_dev_reset() argument
2466 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_dev_reset()
2472 struct scsi_target *starget = scmd->device->sdev_target; in scsih_dev_reset()
2475 sdev_printk(KERN_INFO, scmd->device, in scsih_dev_reset()
2476 "attempting device reset! scmd(%p)\n", scmd); in scsih_dev_reset()
2477 _scsih_tm_display_info(ioc, scmd); in scsih_dev_reset()
2479 sas_device_priv_data = scmd->device->hostdata; in scsih_dev_reset()
2481 sdev_printk(KERN_INFO, scmd->device, in scsih_dev_reset()
2482 "device been deleted! scmd(%p)\n", scmd); in scsih_dev_reset()
2483 scmd->result = DID_NO_CONNECT << 16; in scsih_dev_reset()
2484 scmd->scsi_done(scmd); in scsih_dev_reset()
2501 scmd->result = DID_RESET << 16; in scsih_dev_reset()
2506 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in scsih_dev_reset()
2507 scmd->device->id, scmd->device->lun, in scsih_dev_reset()
2511 sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(%p)\n", in scsih_dev_reset()
2512 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_dev_reset()
2527 scsih_target_reset(struct scsi_cmnd *scmd) in scsih_target_reset() argument
2529 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_target_reset()
2534 struct scsi_target *starget = scmd->device->sdev_target; in scsih_target_reset()
2538 scmd); in scsih_target_reset()
2539 _scsih_tm_display_info(ioc, scmd); in scsih_target_reset()
2541 sas_device_priv_data = scmd->device->hostdata; in scsih_target_reset()
2544 scmd); in scsih_target_reset()
2545 scmd->result = DID_NO_CONNECT << 16; in scsih_target_reset()
2546 scmd->scsi_done(scmd); in scsih_target_reset()
2563 scmd->result = DID_RESET << 16; in scsih_target_reset()
2568 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, in scsih_target_reset()
2569 scmd->device->id, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, in scsih_target_reset()
2574 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_target_reset()
2590 scsih_host_reset(struct scsi_cmnd *scmd) in scsih_host_reset() argument
2592 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); in scsih_host_reset()
2596 ioc->name, scmd); in scsih_host_reset()
2597 scsi_print_command(scmd); in scsih_host_reset()
2611 ioc->name, ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); in scsih_host_reset()
3715 struct scsi_cmnd *scmd; in _scsih_flush_running_cmds() local
3720 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); in _scsih_flush_running_cmds()
3721 if (!scmd) in _scsih_flush_running_cmds()
3725 scsi_dma_unmap(scmd); in _scsih_flush_running_cmds()
3727 scmd->result = DID_NO_CONNECT << 16; in _scsih_flush_running_cmds()
3729 scmd->result = DID_RESET << 16; in _scsih_flush_running_cmds()
3730 scmd->scsi_done(scmd); in _scsih_flush_running_cmds()
3747 _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_setup_eedp() argument
3751 unsigned char prot_op = scsi_get_prot_op(scmd); in _scsih_setup_eedp()
3752 unsigned char prot_type = scsi_get_prot_type(scmd); in _scsih_setup_eedp()
3778 cpu_to_be32(scsi_get_lba(scmd)); in _scsih_setup_eedp()
3792 cpu_to_le16(scmd->device->sector_size); in _scsih_setup_eedp()
3804 _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status) in _scsih_eedp_error_handling() argument
3822 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x10, in _scsih_eedp_error_handling()
3824 scmd->result = DRIVER_SENSE << 24 | (DID_ABORT << 16) | in _scsih_eedp_error_handling()
3842 scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd) in scsih_qcmd() argument
3854 scsi_print_command(scmd); in scsih_qcmd()
3856 sas_device_priv_data = scmd->device->hostdata; in scsih_qcmd()
3858 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
3859 scmd->scsi_done(scmd); in scsih_qcmd()
3864 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
3865 scmd->scsi_done(scmd); in scsih_qcmd()
3874 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
3875 scmd->scsi_done(scmd); in scsih_qcmd()
3886 scmd->result = DID_NO_CONNECT << 16; in scsih_qcmd()
3887 scmd->scsi_done(scmd); in scsih_qcmd()
3894 if (scmd->sc_data_direction == DMA_FROM_DEVICE) in scsih_qcmd()
3896 else if (scmd->sc_data_direction == DMA_TO_DEVICE) in scsih_qcmd()
3907 if (!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev) in scsih_qcmd()
3908 && sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32) in scsih_qcmd()
3911 smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd); in scsih_qcmd()
3919 _scsih_setup_eedp(ioc, scmd, mpi_request); in scsih_qcmd()
3921 if (scmd->cmd_len == 32) in scsih_qcmd()
3930 mpi_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); in scsih_qcmd()
3932 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len); in scsih_qcmd()
3940 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in scsih_qcmd()
3943 if (ioc->build_sg_scmd(ioc, scmd, smid)) { in scsih_qcmd()
3952 mpt3sas_setup_direct_io(ioc, scmd, raid_device, mpi_request, in scsih_qcmd()
3957 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len | in scsih_qcmd()
4007 _scsih_scsi_ioc_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, in _scsih_scsi_ioc_info() argument
4021 struct scsi_target *starget = scmd->device->sdev_target; in _scsih_scsi_ioc_info()
4145 scsi_print_command(scmd); in _scsih_scsi_ioc_info()
4181 ioc->name, scsi_bufflen(scmd), scmd->underflow, in _scsih_scsi_ioc_info()
4182 scsi_get_resid(scmd)); in _scsih_scsi_ioc_info()
4186 le32_to_cpu(mpi_reply->TransferCount), scmd->result); in _scsih_scsi_ioc_info()
4194 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_scsi_ioc_info()
4413 struct scsi_cmnd *scmd; in _scsih_io_done() local
4424 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); in _scsih_io_done()
4425 if (scmd == NULL) in _scsih_io_done()
4431 scmd->result = DID_OK << 16; in _scsih_io_done()
4435 sas_device_priv_data = scmd->device->hostdata; in _scsih_io_done()
4438 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4451 ioc->scsi_lookup[smid - 1].scmd = scmd; in _scsih_io_done()
4454 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); in _scsih_io_done()
4469 !scsih_is_raid(&scmd->device->sdev_gendev) && in _scsih_io_done()
4470 sas_is_tlr_enabled(scmd->device) && in _scsih_io_done()
4472 sas_disable_tlr(scmd->device); in _scsih_io_done()
4473 sdev_printk(KERN_INFO, scmd->device, "TLR disabled\n"); in _scsih_io_done()
4478 scsi_set_resid(scmd, scsi_bufflen(scmd) - xfer_cnt); in _scsih_io_done()
4499 memcpy(scmd->sense_buffer, sense_data, sz); in _scsih_io_done()
4500 _scsih_normalize_sense(scmd->sense_buffer, &data); in _scsih_io_done()
4508 ((scmd->sense_buffer[2] == UNIT_ATTENTION) || in _scsih_io_done()
4509 (scmd->sense_buffer[2] == MEDIUM_ERROR) || in _scsih_io_done()
4510 (scmd->sense_buffer[2] == HARDWARE_ERROR))) in _scsih_io_done()
4511 _scsih_scsi_ioc_info(ioc, scmd, mpi_reply, smid); in _scsih_io_done()
4516 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
4520 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4525 scmd->result = DID_TRANSPORT_DISRUPTED << 16; in _scsih_io_done()
4529 if (scmd->retries > 2) { in _scsih_io_done()
4530 scmd->result = DID_NO_CONNECT << 16; in _scsih_io_done()
4531 scsi_device_set_state(scmd->device, in _scsih_io_done()
4534 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4535 scmd->device->expecting_cc_ua = 1; in _scsih_io_done()
4539 scmd->result = DID_RESET << 16; in _scsih_io_done()
4542 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4546 scmd->result = DID_RESET << 16; in _scsih_io_done()
4550 if ((xfer_cnt == 0) || (scmd->underflow > xfer_cnt)) in _scsih_io_done()
4551 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4553 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4557 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4562 if (xfer_cnt < scmd->underflow) { in _scsih_io_done()
4564 scmd->result = SAM_STAT_BUSY; in _scsih_io_done()
4566 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4569 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4571 scmd->result = DID_RESET << 16; in _scsih_io_done()
4572 else if (!xfer_cnt && scmd->cmnd[0] == REPORT_LUNS) { in _scsih_io_done()
4575 scmd->result = (DRIVER_SENSE << 24) | in _scsih_io_done()
4577 scmd->sense_buffer[0] = 0x70; in _scsih_io_done()
4578 scmd->sense_buffer[2] = ILLEGAL_REQUEST; in _scsih_io_done()
4579 scmd->sense_buffer[12] = 0x20; in _scsih_io_done()
4580 scmd->sense_buffer[13] = 0; in _scsih_io_done()
4585 scsi_set_resid(scmd, 0); in _scsih_io_done()
4588 scmd->result = (DID_OK << 16) | scsi_status; in _scsih_io_done()
4593 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4595 scmd->result = DID_RESET << 16; in _scsih_io_done()
4601 _scsih_eedp_error_handling(scmd, ioc_status); in _scsih_io_done()
4613 scmd->result = DID_SOFT_ERROR << 16; in _scsih_io_done()
4618 if (scmd->result && (ioc->logging_level & MPT_DEBUG_REPLY)) in _scsih_io_done()
4619 _scsih_scsi_ioc_info(ioc , scmd, mpi_reply, smid); in _scsih_io_done()
4623 scsi_dma_unmap(scmd); in _scsih_io_done()
4625 scmd->scsi_done(scmd); in _scsih_io_done()
5822 struct scsi_cmnd *scmd; in _scsih_sas_broadcast_primitive_event() local
5865 scmd = _scsih_scsi_lookup_get(ioc, smid); in _scsih_sas_broadcast_primitive_event()
5866 if (!scmd) in _scsih_sas_broadcast_primitive_event()
5868 sdev = scmd->device; in _scsih_sas_broadcast_primitive_event()
5895 "QUERY_TASK: scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
5904 ioc_status, scmd); in _scsih_sas_broadcast_primitive_event()
5936 "scmd(%p)\n", scmd); in _scsih_sas_broadcast_primitive_event()
5944 task_abort_retries - 1, scmd); in _scsih_sas_broadcast_primitive_event()