Lines Matching refs:scmd

69 	struct scsi_cmnd *scmd, u32 aio_handle, u8 *cdb,
73 struct scsi_cmnd *scmd, struct pqi_queue_group *queue_group,
77 struct scsi_cmnd *scmd, struct pqi_queue_group *queue_group,
195 static inline void pqi_scsi_done(struct scsi_cmnd *scmd) in pqi_scsi_done() argument
197 pqi_prep_for_scsi_done(scmd); in pqi_scsi_done()
198 scsi_done(scmd); in pqi_scsi_done()
652 io_request->scmd = NULL; in pqi_reinit_io_request()
2638 static int pqi_get_aio_lba_and_block_count(struct scsi_cmnd *scmd, in pqi_get_aio_lba_and_block_count() argument
2642 switch (scmd->cmnd[0]) { in pqi_get_aio_lba_and_block_count()
2647 rmd->first_block = (u64)(((scmd->cmnd[1] & 0x1f) << 16) | in pqi_get_aio_lba_and_block_count()
2648 (scmd->cmnd[2] << 8) | scmd->cmnd[3]); in pqi_get_aio_lba_and_block_count()
2649 rmd->block_cnt = (u32)scmd->cmnd[4]; in pqi_get_aio_lba_and_block_count()
2657 rmd->first_block = (u64)get_unaligned_be32(&scmd->cmnd[2]); in pqi_get_aio_lba_and_block_count()
2658 rmd->block_cnt = (u32)get_unaligned_be16(&scmd->cmnd[7]); in pqi_get_aio_lba_and_block_count()
2664 rmd->first_block = (u64)get_unaligned_be32(&scmd->cmnd[2]); in pqi_get_aio_lba_and_block_count()
2665 rmd->block_cnt = get_unaligned_be32(&scmd->cmnd[6]); in pqi_get_aio_lba_and_block_count()
2671 rmd->first_block = get_unaligned_be64(&scmd->cmnd[2]); in pqi_get_aio_lba_and_block_count()
2672 rmd->block_cnt = get_unaligned_be32(&scmd->cmnd[10]); in pqi_get_aio_lba_and_block_count()
2679 put_unaligned_le32(scsi_bufflen(scmd), &rmd->data_length); in pqi_get_aio_lba_and_block_count()
2919 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd, in pqi_raid_bypass_submit_scsi_cmd() argument
2930 rc = pqi_get_aio_lba_and_block_count(scmd, &rmd); in pqi_raid_bypass_submit_scsi_cmd()
3001 return pqi_aio_submit_r1_write_io(ctrl_info, scmd, queue_group, in pqi_raid_bypass_submit_scsi_cmd()
3005 return pqi_aio_submit_r56_write_io(ctrl_info, scmd, queue_group, in pqi_raid_bypass_submit_scsi_cmd()
3010 return pqi_aio_submit_io(ctrl_info, scmd, rmd.aio_handle, in pqi_raid_bypass_submit_scsi_cmd()
3083 device = io_request->scmd->device->hostdata; in pqi_aio_path_disabled()
3109 struct scsi_cmnd *scmd; in pqi_process_raid_io_error() local
3116 scmd = io_request->scmd; in pqi_process_raid_io_error()
3117 if (!scmd) in pqi_process_raid_io_error()
3130 residual_count = scsi_bufflen(scmd) - xfer_count; in pqi_process_raid_io_error()
3131 scsi_set_resid(scmd, residual_count); in pqi_process_raid_io_error()
3132 if (xfer_count < scmd->underflow) in pqi_process_raid_io_error()
3176 struct pqi_ctrl_info *ctrl_info = shost_to_hba(scmd->device->host); in pqi_process_raid_io_error()
3177 struct pqi_scsi_dev *device = scmd->device->hostdata; in pqi_process_raid_io_error()
3182 …scmd_printk(KERN_ERR, scmd, "received 'logical unit failure' from controller for scsi %d:%d:%d:%d\… in pqi_process_raid_io_error()
3184 pqi_take_device_offline(scmd->device, "RAID"); in pqi_process_raid_io_error()
3190 … scmd_printk(KERN_ERR, scmd, "received unhandled error %d from controller for scsi %d:%d:%d:%d\n", in pqi_process_raid_io_error()
3198 memcpy(scmd->sense_buffer, error_info->data, in pqi_process_raid_io_error()
3202 scmd->result = scsi_status; in pqi_process_raid_io_error()
3203 set_host_byte(scmd, host_byte); in pqi_process_raid_io_error()
3210 struct scsi_cmnd *scmd; in pqi_process_aio_io_error() local
3217 scmd = io_request->scmd; in pqi_process_aio_io_error()
3236 scsi_set_resid(scmd, residual_count); in pqi_process_aio_io_error()
3237 xfer_count = scsi_bufflen(scmd) - residual_count; in pqi_process_aio_io_error()
3238 if (xfer_count < scmd->underflow) in pqi_process_aio_io_error()
3253 pqi_take_device_offline(scmd->device, "AIO"); in pqi_process_aio_io_error()
3283 memcpy(scmd->sense_buffer, error_info->data, in pqi_process_aio_io_error()
3289 scsi_build_sense(scmd, 0, HARDWARE_ERROR, 0x3e, 0x1); in pqi_process_aio_io_error()
3291 scmd->result = scsi_status; in pqi_process_aio_io_error()
3292 set_host_byte(scmd, host_byte); in pqi_process_aio_io_error()
3388 if (io_request->scmd) in pqi_process_io_intr()
3389 io_request->scmd->result = 0; in pqi_process_io_intr()
5275 struct pqi_raid_path_request *request, struct scsi_cmnd *scmd, in pqi_build_raid_sg_list() argument
5285 sg_count = scsi_dma_map(scmd); in pqi_build_raid_sg_list()
5295 sg = scsi_sglist(scmd); in pqi_build_raid_sg_list()
5311 struct pqi_aio_r1_path_request *request, struct scsi_cmnd *scmd, in pqi_build_aio_r1_sg_list() argument
5321 sg_count = scsi_dma_map(scmd); in pqi_build_aio_r1_sg_list()
5332 sg = scsi_sglist(scmd); in pqi_build_aio_r1_sg_list()
5349 struct pqi_aio_r56_path_request *request, struct scsi_cmnd *scmd, in pqi_build_aio_r56_sg_list() argument
5359 sg_count = scsi_dma_map(scmd); in pqi_build_aio_r56_sg_list()
5368 sg = scsi_sglist(scmd); in pqi_build_aio_r56_sg_list()
5385 struct pqi_aio_path_request *request, struct scsi_cmnd *scmd, in pqi_build_aio_sg_list() argument
5395 sg_count = scsi_dma_map(scmd); in pqi_build_aio_sg_list()
5406 sg = scsi_sglist(scmd); in pqi_build_aio_sg_list()
5425 struct scsi_cmnd *scmd; in pqi_raid_io_complete() local
5427 scmd = io_request->scmd; in pqi_raid_io_complete()
5429 scsi_dma_unmap(scmd); in pqi_raid_io_complete()
5430 pqi_scsi_done(scmd); in pqi_raid_io_complete()
5435 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd, in pqi_raid_submit_scsi_cmd_with_io_request() argument
5443 io_request->scmd = scmd; in pqi_raid_submit_scsi_cmd_with_io_request()
5449 put_unaligned_le32(scsi_bufflen(scmd), &request->buffer_length); in pqi_raid_submit_scsi_cmd_with_io_request()
5455 cdb_length = min_t(size_t, scmd->cmd_len, sizeof(request->cdb)); in pqi_raid_submit_scsi_cmd_with_io_request()
5456 memcpy(request->cdb, scmd->cmnd, cdb_length); in pqi_raid_submit_scsi_cmd_with_io_request()
5480 switch (scmd->sc_data_direction) { in pqi_raid_submit_scsi_cmd_with_io_request()
5496 scmd->sc_data_direction); in pqi_raid_submit_scsi_cmd_with_io_request()
5500 rc = pqi_build_raid_sg_list(ctrl_info, request, scmd, io_request); in pqi_raid_submit_scsi_cmd_with_io_request()
5512 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd, in pqi_raid_submit_scsi_cmd() argument
5520 device, scmd, queue_group); in pqi_raid_submit_scsi_cmd()
5525 struct scsi_cmnd *scmd; in pqi_raid_bypass_retry_needed() local
5532 scmd = io_request->scmd; in pqi_raid_bypass_retry_needed()
5533 if ((scmd->result & 0xff) == SAM_STAT_GOOD) in pqi_raid_bypass_retry_needed()
5535 if (host_byte(scmd->result) == DID_NO_CONNECT) in pqi_raid_bypass_retry_needed()
5538 device = scmd->device->hostdata; in pqi_raid_bypass_retry_needed()
5542 ctrl_info = shost_to_hba(scmd->device->host); in pqi_raid_bypass_retry_needed()
5552 struct scsi_cmnd *scmd; in pqi_aio_io_complete() local
5554 scmd = io_request->scmd; in pqi_aio_io_complete()
5555 scsi_dma_unmap(scmd); in pqi_aio_io_complete()
5557 set_host_byte(scmd, DID_IMM_RETRY); in pqi_aio_io_complete()
5558 scmd->SCp.this_residual++; in pqi_aio_io_complete()
5562 pqi_scsi_done(scmd); in pqi_aio_io_complete()
5566 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd, in pqi_aio_submit_scsi_cmd() argument
5569 return pqi_aio_submit_io(ctrl_info, scmd, device->aio_handle, in pqi_aio_submit_scsi_cmd()
5570 scmd->cmnd, scmd->cmd_len, queue_group, NULL, false); in pqi_aio_submit_scsi_cmd()
5574 struct scsi_cmnd *scmd, u32 aio_handle, u8 *cdb, in pqi_aio_submit_io() argument
5584 io_request->scmd = scmd; in pqi_aio_submit_io()
5592 put_unaligned_le32(scsi_bufflen(scmd), &request->buffer_length); in pqi_aio_submit_io()
5601 switch (scmd->sc_data_direction) { in pqi_aio_submit_io()
5617 scmd->sc_data_direction); in pqi_aio_submit_io()
5631 rc = pqi_build_aio_sg_list(ctrl_info, request, scmd, io_request); in pqi_aio_submit_io()
5643 struct scsi_cmnd *scmd, struct pqi_queue_group *queue_group, in pqi_aio_submit_r1_write_io() argument
5653 io_request->scmd = scmd; in pqi_aio_submit_r1_write_io()
5667 put_unaligned_le32(scsi_bufflen(scmd), &r1_request->data_length); in pqi_aio_submit_r1_write_io()
5689 rc = pqi_build_aio_r1_sg_list(ctrl_info, r1_request, scmd, io_request); in pqi_aio_submit_r1_write_io()
5701 struct scsi_cmnd *scmd, struct pqi_queue_group *queue_group, in pqi_aio_submit_r56_write_io() argument
5711 io_request->scmd = scmd; in pqi_aio_submit_r56_write_io()
5729 put_unaligned_le32(scsi_bufflen(scmd), &r56_request->data_length); in pqi_aio_submit_r56_write_io()
5754 rc = pqi_build_aio_r56_sg_list(ctrl_info, r56_request, scmd, io_request); in pqi_aio_submit_r56_write_io()
5766 struct scsi_cmnd *scmd) in pqi_get_hw_queue() argument
5770 hw_queue = blk_mq_unique_tag_to_hwq(blk_mq_unique_tag(scsi_cmd_to_rq(scmd))); in pqi_get_hw_queue()
5777 static inline bool pqi_is_bypass_eligible_request(struct scsi_cmnd *scmd) in pqi_is_bypass_eligible_request() argument
5779 if (blk_rq_is_passthrough(scsi_cmd_to_rq(scmd))) in pqi_is_bypass_eligible_request()
5782 return scmd->SCp.this_residual == 0; in pqi_is_bypass_eligible_request()
5790 void pqi_prep_for_scsi_done(struct scsi_cmnd *scmd) in pqi_prep_for_scsi_done() argument
5794 if (!scmd->device) { in pqi_prep_for_scsi_done()
5795 set_host_byte(scmd, DID_NO_CONNECT); in pqi_prep_for_scsi_done()
5799 device = scmd->device->hostdata; in pqi_prep_for_scsi_done()
5801 set_host_byte(scmd, DID_NO_CONNECT); in pqi_prep_for_scsi_done()
5809 struct scsi_cmnd *scmd) in pqi_is_parity_write_stream() argument
5822 rc = pqi_get_aio_lba_and_block_count(scmd, &rmd); in pqi_is_parity_write_stream()
5830 device = scmd->device->hostdata; in pqi_is_parity_write_stream()
5883 static int pqi_scsi_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd) in pqi_scsi_queue_command() argument
5892 device = scmd->device->hostdata; in pqi_scsi_queue_command()
5895 set_host_byte(scmd, DID_NO_CONNECT); in pqi_scsi_queue_command()
5896 pqi_scsi_done(scmd); in pqi_scsi_queue_command()
5905 set_host_byte(scmd, DID_NO_CONNECT); in pqi_scsi_queue_command()
5906 pqi_scsi_done(scmd); in pqi_scsi_queue_command()
5919 scmd->result = 0; in pqi_scsi_queue_command()
5921 hw_queue = pqi_get_hw_queue(ctrl_info, scmd); in pqi_scsi_queue_command()
5927 pqi_is_bypass_eligible_request(scmd) && in pqi_scsi_queue_command()
5928 !pqi_is_parity_write_stream(ctrl_info, scmd)) { in pqi_scsi_queue_command()
5929 rc = pqi_raid_bypass_submit_scsi_cmd(ctrl_info, device, scmd, queue_group); in pqi_scsi_queue_command()
5936 rc = pqi_raid_submit_scsi_cmd(ctrl_info, device, scmd, queue_group); in pqi_scsi_queue_command()
5939 rc = pqi_aio_submit_scsi_cmd(ctrl_info, device, scmd, queue_group); in pqi_scsi_queue_command()
5941 rc = pqi_raid_submit_scsi_cmd(ctrl_info, device, scmd, queue_group); in pqi_scsi_queue_command()
6048 struct scsi_cmnd *scmd; in pqi_fail_io_queued_for_device() local
6062 scmd = io_request->scmd; in pqi_fail_io_queued_for_device()
6063 if (!scmd) in pqi_fail_io_queued_for_device()
6066 scsi_device = scmd->device->hostdata; in pqi_fail_io_queued_for_device()
6071 set_host_byte(scmd, DID_RESET); in pqi_fail_io_queued_for_device()
6073 scsi_dma_unmap(scmd); in pqi_fail_io_queued_for_device()
6074 pqi_scsi_done(scmd); in pqi_fail_io_queued_for_device()
6248 static int pqi_eh_device_reset_handler(struct scsi_cmnd *scmd) in pqi_eh_device_reset_handler() argument
6255 shost = scmd->device->host; in pqi_eh_device_reset_handler()
6257 device = scmd->device->hostdata; in pqi_eh_device_reset_handler()
6265 scmd->cmd_len > 0 ? scmd->cmnd[0] : 0xff); in pqi_eh_device_reset_handler()
8634 struct scsi_cmnd *scmd; in pqi_fail_all_outstanding_requests() local
8642 scmd = io_request->scmd; in pqi_fail_all_outstanding_requests()
8643 if (scmd) { in pqi_fail_all_outstanding_requests()
8644 sdev = scmd->device; in pqi_fail_all_outstanding_requests()
8649 set_host_byte(scmd, DID_NO_CONNECT); in pqi_fail_all_outstanding_requests()
8780 struct scsi_cmnd *scmd; in pqi_crash_if_pending_command() local
8786 scmd = io_request->scmd; in pqi_crash_if_pending_command()
8787 WARN_ON(scmd != NULL); /* IO command from SML */ in pqi_crash_if_pending_command()
8788 WARN_ON(scmd == NULL); /* Non-IO cmd or driver initiated*/ in pqi_crash_if_pending_command()