Lines Matching refs:scmd
67 struct scsi_cmnd *scmd, u32 aio_handle, u8 *cdb,
188 static inline void pqi_scsi_done(struct scsi_cmnd *scmd)
190 pqi_prep_for_scsi_done(scmd);
191 scmd->scsi_done(scmd);
570 io_request->scmd = NULL;
2245 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd,
2292 switch (scmd->cmnd[0]) {
2297 first_block = (u64)(((scmd->cmnd[1] & 0x1f) << 16) |
2298 (scmd->cmnd[2] << 8) | scmd->cmnd[3]);
2299 block_cnt = (u32)scmd->cmnd[4];
2307 first_block = (u64)get_unaligned_be32(&scmd->cmnd[2]);
2308 block_cnt = (u32)get_unaligned_be16(&scmd->cmnd[7]);
2314 first_block = (u64)get_unaligned_be32(&scmd->cmnd[2]);
2315 block_cnt = get_unaligned_be32(&scmd->cmnd[6]);
2321 first_block = get_unaligned_be64(&scmd->cmnd[2]);
2322 block_cnt = get_unaligned_be32(&scmd->cmnd[10]);
2566 return pqi_aio_submit_io(ctrl_info, scmd, aio_handle,
2638 device = io_request->scmd->device->hostdata;
2664 struct scsi_cmnd *scmd;
2671 scmd = io_request->scmd;
2672 if (!scmd)
2685 residual_count = scsi_bufflen(scmd) - xfer_count;
2686 scsi_set_resid(scmd, residual_count);
2687 if (xfer_count < scmd->underflow)
2731 struct pqi_ctrl_info *ctrl_info = shost_to_hba(scmd->device->host);
2732 struct pqi_scsi_dev *device = scmd->device->hostdata;
2737 scmd_printk(KERN_ERR, scmd, "received 'logical unit failure' from controller for scsi %d:%d:%d:%d\n",
2739 pqi_take_device_offline(scmd->device, "RAID");
2745 scmd_printk(KERN_ERR, scmd, "received unhandled error %d from controller for scsi %d:%d:%d:%d\n",
2753 memcpy(scmd->sense_buffer, error_info->data,
2757 scmd->result = scsi_status;
2758 set_host_byte(scmd, host_byte);
2765 struct scsi_cmnd *scmd;
2772 scmd = io_request->scmd;
2791 scsi_set_resid(scmd, residual_count);
2792 xfer_count = scsi_bufflen(scmd) - residual_count;
2793 if (xfer_count < scmd->underflow)
2808 pqi_take_device_offline(scmd->device, "AIO");
2838 memcpy(scmd->sense_buffer, error_info->data,
2844 scsi_build_sense_buffer(0, scmd->sense_buffer, HARDWARE_ERROR,
2847 scmd->result = scsi_status;
2848 set_host_byte(scmd, host_byte);
2939 if (io_request->scmd)
2940 io_request->scmd->result = 0;
4801 struct pqi_raid_path_request *request, struct scsi_cmnd *scmd,
4813 sg_count = scsi_dma_map(scmd);
4823 sg = scsi_sglist(scmd);
4865 struct pqi_aio_path_request *request, struct scsi_cmnd *scmd,
4877 sg_count = scsi_dma_map(scmd);
4888 sg = scsi_sglist(scmd);
4932 struct scsi_cmnd *scmd;
4934 scmd = io_request->scmd;
4936 scsi_dma_unmap(scmd);
4937 pqi_scsi_done(scmd);
4942 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd,
4950 io_request->scmd = scmd;
4957 put_unaligned_le32(scsi_bufflen(scmd), &request->buffer_length);
4964 cdb_length = min_t(size_t, scmd->cmd_len, sizeof(request->cdb));
4965 memcpy(request->cdb, scmd->cmnd, cdb_length);
4999 switch (scmd->sc_data_direction) {
5015 scmd->sc_data_direction);
5019 rc = pqi_build_raid_sg_list(ctrl_info, request, scmd, io_request);
5031 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd,
5039 device, scmd, queue_group);
5050 struct scsi_cmnd *scmd;
5057 scmd = io_request->scmd;
5058 if ((scmd->result & 0xff) == SAM_STAT_GOOD)
5060 if (host_byte(scmd->result) == DID_NO_CONNECT)
5063 device = scmd->device->hostdata;
5067 ctrl_info = shost_to_hba(scmd->device->host);
5093 struct scsi_cmnd *scmd;
5095 scmd = io_request->scmd;
5097 pqi_scsi_done(scmd);
5102 struct scsi_cmnd *scmd;
5106 scmd = io_request->scmd;
5107 scmd->result = 0;
5108 ctrl_info = shost_to_hba(scmd->device->host);
5116 struct scsi_cmnd *scmd;
5121 scmd = io_request->scmd;
5122 device = scmd->device->hostdata;
5125 set_host_byte(scmd, DID_RESET);
5126 pqi_scsi_done(scmd);
5130 ctrl_info = shost_to_hba(scmd->device->host);
5136 device, scmd, queue_group);
5203 struct scsi_cmnd *scmd;
5205 scmd = io_request->scmd;
5206 scsi_dma_unmap(scmd);
5208 set_host_byte(scmd, DID_IMM_RETRY);
5214 pqi_scsi_done(scmd);
5218 struct pqi_scsi_dev *device, struct scsi_cmnd *scmd,
5221 return pqi_aio_submit_io(ctrl_info, scmd, device->aio_handle,
5222 scmd->cmnd, scmd->cmd_len, queue_group, NULL, false);
5226 struct scsi_cmnd *scmd, u32 aio_handle, u8 *cdb,
5236 io_request->scmd = scmd;
5245 put_unaligned_le32(scsi_bufflen(scmd), &request->buffer_length);
5254 switch (scmd->sc_data_direction) {
5270 scmd->sc_data_direction);
5284 rc = pqi_build_aio_sg_list(ctrl_info, request, scmd, io_request);
5296 struct scsi_cmnd *scmd)
5300 hw_queue = blk_mq_unique_tag_to_hwq(blk_mq_unique_tag(scmd->request));
5312 void pqi_prep_for_scsi_done(struct scsi_cmnd *scmd)
5316 if (!scmd->device) {
5317 set_host_byte(scmd, DID_NO_CONNECT);
5321 device = scmd->device->hostdata;
5323 set_host_byte(scmd, DID_NO_CONNECT);
5331 struct scsi_cmnd *scmd)
5340 device = scmd->device->hostdata;
5344 set_host_byte(scmd, DID_NO_CONNECT);
5345 pqi_scsi_done(scmd);
5353 set_host_byte(scmd, DID_NO_CONNECT);
5354 pqi_scsi_done(scmd);
5369 scmd->result = 0;
5371 hw_queue = pqi_get_hw_queue(ctrl_info, scmd);
5377 !blk_rq_is_passthrough(scmd->request)) {
5379 scmd, queue_group);
5386 rc = pqi_raid_submit_scsi_cmd(ctrl_info, device, scmd, queue_group);
5389 rc = pqi_aio_submit_scsi_cmd(ctrl_info, device, scmd, queue_group);
5391 rc = pqi_raid_submit_scsi_cmd(ctrl_info, device, scmd, queue_group);
5472 struct scsi_cmnd *scmd;
5485 scmd = io_request->scmd;
5486 if (!scmd)
5489 scsi_device = scmd->device->hostdata;
5494 set_host_byte(scmd, DID_RESET);
5496 scsi_dma_unmap(scmd);
5497 pqi_scsi_done(scmd);
5514 struct scsi_cmnd *scmd;
5527 scmd = io_request->scmd;
5528 if (!scmd)
5532 set_host_byte(scmd, DID_RESET);
5534 scsi_dma_unmap(scmd);
5535 pqi_scsi_done(scmd);
5748 static int pqi_eh_device_reset_handler(struct scsi_cmnd *scmd)
5755 shost = scmd->device->host;
5757 device = scmd->device->hostdata;
7908 struct scsi_cmnd *scmd;
7915 scmd = io_request->scmd;
7916 if (scmd) {
7917 set_host_byte(scmd, DID_NO_CONNECT);
8049 struct scsi_cmnd *scmd;
8055 scmd = io_request->scmd;
8056 WARN_ON(scmd != NULL); /* IO command from SML */
8057 WARN_ON(scmd == NULL); /* Non-IO cmd or driver initiated*/