Searched refs:scmd (Results 1 - 46 of 46) sorted by relevance

/linux-4.4.14/drivers/scsi/
H A Dscsi_error.c49 static void scsi_eh_done(struct scsi_cmnd *scmd);
58 static int scsi_eh_try_stu(struct scsi_cmnd *scmd);
77 * Schedule SCSI EH without scmd.
121 struct scsi_cmnd *scmd = scmd_eh_abort_handler() local
123 struct scsi_device *sdev = scmd->device; scmd_eh_abort_handler()
128 scmd_printk(KERN_INFO, scmd, scmd_eh_abort_handler()
132 scmd_printk(KERN_INFO, scmd, scmd_eh_abort_handler()
134 rtn = scsi_try_to_abort_cmd(sdev->host->hostt, scmd); scmd_eh_abort_handler()
136 set_host_byte(scmd, DID_TIME_OUT); scmd_eh_abort_handler()
139 scmd_printk(KERN_INFO, scmd, scmd_eh_abort_handler()
142 } else if (!scsi_noretry_cmd(scmd) && scmd_eh_abort_handler()
143 (++scmd->retries <= scmd->allowed)) { scmd_eh_abort_handler()
145 scmd_printk(KERN_WARNING, scmd, scmd_eh_abort_handler()
147 scsi_queue_insert(scmd, SCSI_MLQUEUE_EH_RETRY); scmd_eh_abort_handler()
151 scmd_printk(KERN_WARNING, scmd, scmd_eh_abort_handler()
153 scsi_finish_command(scmd); scmd_eh_abort_handler()
158 scmd_printk(KERN_INFO, scmd, scmd_eh_abort_handler()
165 if (!scsi_eh_scmd_add(scmd, 0)) { scmd_eh_abort_handler()
167 scmd_printk(KERN_WARNING, scmd, scmd_eh_abort_handler()
169 set_host_byte(scmd, DID_TIME_OUT); scmd_eh_abort_handler()
170 scsi_finish_command(scmd); scmd_eh_abort_handler()
176 * @scmd: scmd to abort.
181 scsi_abort_command(struct scsi_cmnd *scmd) scsi_abort_command() argument
183 struct scsi_device *sdev = scmd->device; scsi_abort_command()
187 if (scmd->eh_eflags & SCSI_EH_ABORT_SCHEDULED) { scsi_abort_command()
191 scmd->eh_eflags &= ~SCSI_EH_ABORT_SCHEDULED; scsi_abort_command()
193 scmd_printk(KERN_INFO, scmd, scsi_abort_command()
195 BUG_ON(delayed_work_pending(&scmd->abort_work)); scsi_abort_command()
207 scmd_printk(KERN_INFO, scmd, scsi_abort_command()
216 scmd->eh_eflags |= SCSI_EH_ABORT_SCHEDULED; scsi_abort_command()
218 scmd_printk(KERN_INFO, scmd, "abort scheduled\n")); scsi_abort_command()
219 queue_delayed_work(shost->tmf_work_q, &scmd->abort_work, HZ / 100); scsi_abort_command()
225 * @scmd: scmd to run eh on.
231 int scsi_eh_scmd_add(struct scsi_cmnd *scmd, int eh_flag) scsi_eh_scmd_add() argument
233 struct Scsi_Host *shost = scmd->device->host; scsi_eh_scmd_add()
249 if (scmd->eh_eflags & SCSI_EH_ABORT_SCHEDULED) scsi_eh_scmd_add()
251 scmd->eh_eflags |= eh_flag; scsi_eh_scmd_add()
252 list_add_tail(&scmd->eh_entry, &shost->eh_cmd_q); scsi_eh_scmd_add()
272 struct scsi_cmnd *scmd = req->special; scsi_times_out() local
274 struct Scsi_Host *host = scmd->device->host; scsi_times_out()
276 trace_scsi_dispatch_cmd_timeout(scmd); scsi_times_out()
277 scsi_log_completion(scmd, TIMEOUT_ERROR); scsi_times_out()
283 rtn = host->transportt->eh_timed_out(scmd); scsi_times_out()
285 rtn = host->hostt->eh_timed_out(scmd); scsi_times_out()
289 scsi_abort_command(scmd) == SUCCESS) scsi_times_out()
292 set_host_byte(scmd, DID_TIME_OUT); scsi_times_out()
293 if (!scsi_eh_scmd_add(scmd, SCSI_EH_CANCEL_CMD)) scsi_times_out()
335 struct scsi_cmnd *scmd; scsi_eh_prt_fail_stats() local
343 list_for_each_entry(scmd, work_q, eh_entry) { list_for_each_entry()
344 if (scmd->device == sdev) { list_for_each_entry()
346 if (scmd->eh_eflags & SCSI_EH_CANCEL_CMD) list_for_each_entry()
446 * @scmd: Cmd to have sense checked.
455 static int scsi_check_sense(struct scsi_cmnd *scmd) scsi_check_sense() argument
457 struct scsi_device *sdev = scmd->device; scsi_check_sense()
460 if (! scsi_command_normalize_sense(scmd, &sshdr)) scsi_check_sense()
477 if (scmd->cmnd[0] == TEST_UNIT_READY && scmd->scsi_done != scsi_eh_done) scsi_check_sense()
491 if (scmd->sense_buffer[2] & 0xe0) scsi_check_sense()
500 (scmd->sense_buffer[8] == 0x4) && scsi_check_sense()
501 (scmd->sense_buffer[11] & 0xe0)) scsi_check_sense()
524 if (scmd->device->expecting_cc_ua) { scsi_check_sense()
532 scmd->device->expecting_cc_ua = 0; scsi_check_sense()
541 if (scmd->device->sdev_target->expecting_lun_change && scsi_check_sense()
554 if (scmd->device->allow_restart && scsi_check_sense()
567 set_host_byte(scmd, DID_ALLOC_FAILURE); scsi_check_sense()
574 set_host_byte(scmd, DID_TARGET_FAILURE); scsi_check_sense()
581 set_host_byte(scmd, DID_MEDIUM_ERROR); scsi_check_sense()
587 if (scmd->device->retry_hwerror) scsi_check_sense()
590 set_host_byte(scmd, DID_TARGET_FAILURE); scsi_check_sense()
597 set_host_byte(scmd, DID_TARGET_FAILURE); scsi_check_sense()
661 * @scmd: SCSI cmd to examine.
669 static int scsi_eh_completed_normally(struct scsi_cmnd *scmd) scsi_eh_completed_normally() argument
675 if (host_byte(scmd->result) == DID_RESET) { scsi_eh_completed_normally()
682 return scsi_check_sense(scmd); scsi_eh_completed_normally()
684 if (host_byte(scmd->result) != DID_OK) scsi_eh_completed_normally()
690 if (msg_byte(scmd->result) != COMMAND_COMPLETE) scsi_eh_completed_normally()
697 switch (status_byte(scmd->result)) { scsi_eh_completed_normally()
699 scsi_handle_queue_ramp_up(scmd->device); scsi_eh_completed_normally()
703 return scsi_check_sense(scmd); scsi_eh_completed_normally()
712 if (scmd->cmnd[0] == TEST_UNIT_READY) scsi_eh_completed_normally()
719 scsi_handle_queue_full(scmd->device); scsi_eh_completed_normally()
731 * @scmd: Cmd that is done.
733 static void scsi_eh_done(struct scsi_cmnd *scmd) scsi_eh_done() argument
737 SCSI_LOG_ERROR_RECOVERY(3, scmd_printk(KERN_INFO, scmd, scsi_eh_done()
738 "%s result: %x\n", __func__, scmd->result)); scsi_eh_done()
740 eh_action = scmd->device->host->eh_action; scsi_eh_done()
747 * @scmd: SCSI cmd to send host reset.
749 static int scsi_try_host_reset(struct scsi_cmnd *scmd) scsi_try_host_reset() argument
753 struct Scsi_Host *host = scmd->device->host; scsi_try_host_reset()
762 rtn = hostt->eh_host_reset_handler(scmd); scsi_try_host_reset()
768 scsi_report_bus_reset(host, scmd_channel(scmd)); scsi_try_host_reset()
777 * @scmd: SCSI cmd to send bus reset.
779 static int scsi_try_bus_reset(struct scsi_cmnd *scmd) scsi_try_bus_reset() argument
783 struct Scsi_Host *host = scmd->device->host; scsi_try_bus_reset()
786 SCSI_LOG_ERROR_RECOVERY(3, scmd_printk(KERN_INFO, scmd, scsi_try_bus_reset()
792 rtn = hostt->eh_bus_reset_handler(scmd); scsi_try_bus_reset()
798 scsi_report_bus_reset(host, scmd_channel(scmd)); scsi_try_bus_reset()
813 * @scmd: SCSI cmd used to send a target reset
821 static int scsi_try_target_reset(struct scsi_cmnd *scmd) scsi_try_target_reset() argument
825 struct Scsi_Host *host = scmd->device->host; scsi_try_target_reset()
831 rtn = hostt->eh_target_reset_handler(scmd); scsi_try_target_reset()
834 __starget_for_each_device(scsi_target(scmd->device), NULL, scsi_try_target_reset()
844 * @scmd: SCSI cmd used to send BDR
852 static int scsi_try_bus_device_reset(struct scsi_cmnd *scmd) scsi_try_bus_device_reset() argument
855 struct scsi_host_template *hostt = scmd->device->host->hostt; scsi_try_bus_device_reset()
860 rtn = hostt->eh_device_reset_handler(scmd); scsi_try_bus_device_reset()
862 __scsi_report_device_reset(scmd->device, NULL); scsi_try_bus_device_reset()
869 * @scmd: SCSI cmd used to send a target reset
884 struct scsi_cmnd *scmd) scsi_try_to_abort_cmd()
889 return hostt->eh_abort_handler(scmd); scsi_try_to_abort_cmd()
892 static void scsi_abort_eh_cmnd(struct scsi_cmnd *scmd) scsi_abort_eh_cmnd() argument
894 if (scsi_try_to_abort_cmd(scmd->device->host->hostt, scmd) != SUCCESS) scsi_abort_eh_cmnd()
895 if (scsi_try_bus_device_reset(scmd) != SUCCESS) scsi_abort_eh_cmnd()
896 if (scsi_try_target_reset(scmd) != SUCCESS) scsi_abort_eh_cmnd()
897 if (scsi_try_bus_reset(scmd) != SUCCESS) scsi_abort_eh_cmnd()
898 scsi_try_host_reset(scmd); scsi_abort_eh_cmnd()
903 * @scmd: SCSI command structure to hijack
913 * and cmnd buffers to read @sense_bytes into @scmd->sense_buffer.
915 void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd, struct scsi_eh_save *ses, scsi_eh_prep_cmnd() argument
918 struct scsi_device *sdev = scmd->device; scsi_eh_prep_cmnd()
927 ses->cmd_len = scmd->cmd_len; scsi_eh_prep_cmnd()
928 ses->cmnd = scmd->cmnd; scsi_eh_prep_cmnd()
929 ses->data_direction = scmd->sc_data_direction; scsi_eh_prep_cmnd()
930 ses->sdb = scmd->sdb; scsi_eh_prep_cmnd()
931 ses->next_rq = scmd->request->next_rq; scsi_eh_prep_cmnd()
932 ses->result = scmd->result; scsi_eh_prep_cmnd()
933 ses->underflow = scmd->underflow; scsi_eh_prep_cmnd()
934 ses->prot_op = scmd->prot_op; scsi_eh_prep_cmnd()
936 scmd->prot_op = SCSI_PROT_NORMAL; scsi_eh_prep_cmnd()
937 scmd->eh_eflags = 0; scsi_eh_prep_cmnd()
938 scmd->cmnd = ses->eh_cmnd; scsi_eh_prep_cmnd()
939 memset(scmd->cmnd, 0, BLK_MAX_CDB); scsi_eh_prep_cmnd()
940 memset(&scmd->sdb, 0, sizeof(scmd->sdb)); scsi_eh_prep_cmnd()
941 scmd->request->next_rq = NULL; scsi_eh_prep_cmnd()
942 scmd->result = 0; scsi_eh_prep_cmnd()
945 scmd->sdb.length = min_t(unsigned, SCSI_SENSE_BUFFERSIZE, scsi_eh_prep_cmnd()
947 sg_init_one(&ses->sense_sgl, scmd->sense_buffer, scsi_eh_prep_cmnd()
948 scmd->sdb.length); scsi_eh_prep_cmnd()
949 scmd->sdb.table.sgl = &ses->sense_sgl; scsi_eh_prep_cmnd()
950 scmd->sc_data_direction = DMA_FROM_DEVICE; scsi_eh_prep_cmnd()
951 scmd->sdb.table.nents = scmd->sdb.table.orig_nents = 1; scsi_eh_prep_cmnd()
952 scmd->cmnd[0] = REQUEST_SENSE; scsi_eh_prep_cmnd()
953 scmd->cmnd[4] = scmd->sdb.length; scsi_eh_prep_cmnd()
954 scmd->cmd_len = COMMAND_SIZE(scmd->cmnd[0]); scsi_eh_prep_cmnd()
956 scmd->sc_data_direction = DMA_NONE; scsi_eh_prep_cmnd()
959 memcpy(scmd->cmnd, cmnd, cmnd_size); scsi_eh_prep_cmnd()
960 scmd->cmd_len = COMMAND_SIZE(scmd->cmnd[0]); scsi_eh_prep_cmnd()
964 scmd->underflow = 0; scsi_eh_prep_cmnd()
967 scmd->cmnd[1] = (scmd->cmnd[1] & 0x1f) | scsi_eh_prep_cmnd()
974 memset(scmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE); scsi_eh_prep_cmnd()
980 * @scmd: SCSI command structure to restore
985 void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd, struct scsi_eh_save *ses) scsi_eh_restore_cmnd() argument
990 scmd->cmd_len = ses->cmd_len; scsi_eh_restore_cmnd()
991 scmd->cmnd = ses->cmnd; scsi_eh_restore_cmnd()
992 scmd->sc_data_direction = ses->data_direction; scsi_eh_restore_cmnd()
993 scmd->sdb = ses->sdb; scsi_eh_restore_cmnd()
994 scmd->request->next_rq = ses->next_rq; scsi_eh_restore_cmnd()
995 scmd->result = ses->result; scsi_eh_restore_cmnd()
996 scmd->underflow = ses->underflow; scsi_eh_restore_cmnd()
997 scmd->prot_op = ses->prot_op; scsi_eh_restore_cmnd()
1003 * @scmd: SCSI command structure to hijack
1015 static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd, scsi_send_eh_cmnd() argument
1018 struct scsi_device *sdev = scmd->device; scsi_send_eh_cmnd()
1027 scsi_eh_prep_cmnd(scmd, &ses, cmnd, cmnd_size, sense_bytes); scsi_send_eh_cmnd()
1030 scsi_log_send(scmd); scsi_send_eh_cmnd()
1031 scmd->scsi_done = scsi_eh_done; scsi_send_eh_cmnd()
1032 rtn = shost->hostt->queuecommand(shost, scmd); scsi_send_eh_cmnd()
1035 scsi_eh_restore_cmnd(scmd, &ses); scsi_send_eh_cmnd()
1050 scsi_log_completion(scmd, rtn); scsi_send_eh_cmnd()
1052 SCSI_LOG_ERROR_RECOVERY(3, scmd_printk(KERN_INFO, scmd, scsi_send_eh_cmnd()
1066 rtn = scsi_eh_completed_normally(scmd); scsi_send_eh_cmnd()
1067 SCSI_LOG_ERROR_RECOVERY(3, scmd_printk(KERN_INFO, scmd, scsi_send_eh_cmnd()
1083 scsi_abort_eh_cmnd(scmd); scsi_send_eh_cmnd()
1087 scsi_eh_restore_cmnd(scmd, &ses); scsi_send_eh_cmnd()
1094 * @scmd: SCSI cmd for request sense.
1101 static int scsi_request_sense(struct scsi_cmnd *scmd) scsi_request_sense() argument
1103 return scsi_send_eh_cmnd(scmd, NULL, 0, scmd->device->eh_timeout, ~0); scsi_request_sense()
1106 static int scsi_eh_action(struct scsi_cmnd *scmd, int rtn) scsi_eh_action() argument
1108 if (scmd->request->cmd_type != REQ_TYPE_BLOCK_PC) { scsi_eh_action()
1109 struct scsi_driver *sdrv = scsi_cmd_to_driver(scmd); scsi_eh_action()
1111 rtn = sdrv->eh_action(scmd, rtn); scsi_eh_action()
1118 * @scmd: Original SCSI cmd that eh has finished.
1128 void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, struct list_head *done_q) scsi_eh_finish_cmd() argument
1130 scmd->device->host->host_failed--; scsi_eh_finish_cmd()
1131 scmd->eh_eflags = 0; scsi_eh_finish_cmd()
1132 list_move_tail(&scmd->eh_entry, done_q); scsi_eh_finish_cmd()
1159 struct scsi_cmnd *scmd, *next; scsi_eh_get_sense() local
1167 list_for_each_entry_safe(scmd, next, work_q, eh_entry) { list_for_each_entry_safe()
1168 if ((scmd->eh_eflags & SCSI_EH_CANCEL_CMD) || list_for_each_entry_safe()
1169 (scmd->eh_eflags & SCSI_EH_ABORT_SCHEDULED) || list_for_each_entry_safe()
1170 SCSI_SENSE_VALID(scmd)) list_for_each_entry_safe()
1173 shost = scmd->device->host; list_for_each_entry_safe()
1176 scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
1181 if (status_byte(scmd->result) != CHECK_CONDITION) list_for_each_entry_safe()
1190 SCSI_LOG_ERROR_RECOVERY(2, scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
1193 rtn = scsi_request_sense(scmd); list_for_each_entry_safe()
1197 SCSI_LOG_ERROR_RECOVERY(3, scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
1198 "sense requested, result %x\n", scmd->result)); list_for_each_entry_safe()
1199 SCSI_LOG_ERROR_RECOVERY(3, scsi_print_sense(scmd)); list_for_each_entry_safe()
1201 rtn = scsi_decide_disposition(scmd); list_for_each_entry_safe()
1212 scmd->retries = scmd->allowed; list_for_each_entry_safe()
1216 scsi_eh_finish_cmd(scmd, done_q); list_for_each_entry_safe()
1225 * @scmd: &scsi_cmnd to send TUR
1230 static int scsi_eh_tur(struct scsi_cmnd *scmd) scsi_eh_tur() argument
1236 rtn = scsi_send_eh_cmnd(scmd, tur_command, 6, scsi_eh_tur()
1237 scmd->device->eh_timeout, 0); scsi_eh_tur()
1239 SCSI_LOG_ERROR_RECOVERY(3, scmd_printk(KERN_INFO, scmd, scsi_eh_tur()
1271 struct scsi_cmnd *scmd, *next; scsi_eh_test_devices() local
1276 scmd = list_entry(cmd_list->next, struct scsi_cmnd, eh_entry); scsi_eh_test_devices()
1277 sdev = scmd->device; scsi_eh_test_devices()
1291 finish_cmds = !scsi_device_online(scmd->device) || scsi_eh_test_devices()
1292 (try_stu && !scsi_eh_try_stu(scmd) && scsi_eh_test_devices()
1293 !scsi_eh_tur(scmd)) || scsi_eh_test_devices()
1294 !scsi_eh_tur(scmd); scsi_eh_test_devices()
1296 list_for_each_entry_safe(scmd, next, cmd_list, eh_entry) list_for_each_entry_safe()
1297 if (scmd->device == sdev) { list_for_each_entry_safe()
1300 scsi_eh_action(scmd, SUCCESS) == SUCCESS)) list_for_each_entry_safe()
1301 scsi_eh_finish_cmd(scmd, done_q); list_for_each_entry_safe()
1303 list_move_tail(&scmd->eh_entry, work_q); list_for_each_entry_safe()
1325 struct scsi_cmnd *scmd, *next; scsi_eh_abort_cmds() local
1330 list_for_each_entry_safe(scmd, next, work_q, eh_entry) { list_for_each_entry_safe()
1331 if (!(scmd->eh_eflags & SCSI_EH_CANCEL_CMD)) list_for_each_entry_safe()
1333 shost = scmd->device->host; list_for_each_entry_safe()
1337 scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
1343 scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
1345 rtn = scsi_try_to_abort_cmd(shost->hostt, scmd); list_for_each_entry_safe()
1348 scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
1354 scmd->eh_eflags &= ~SCSI_EH_CANCEL_CMD; list_for_each_entry_safe()
1356 scsi_eh_finish_cmd(scmd, done_q); list_for_each_entry_safe()
1358 list_move_tail(&scmd->eh_entry, &check_list); list_for_each_entry_safe()
1366 * @scmd: &scsi_cmnd to send START_UNIT
1371 static int scsi_eh_try_stu(struct scsi_cmnd *scmd) scsi_eh_try_stu() argument
1375 if (scmd->device->allow_restart) { scsi_eh_try_stu()
1379 rtn = scsi_send_eh_cmnd(scmd, stu_command, 6, scmd->device->request_queue->rq_timeout, 0); scsi_eh_try_stu()
1402 struct scsi_cmnd *scmd, *stu_scmd, *next; scsi_eh_stu() local
1414 list_for_each_entry(scmd, work_q, eh_entry) list_for_each_entry()
1415 if (scmd->device == sdev && SCSI_SENSE_VALID(scmd) && list_for_each_entry()
1416 scsi_check_sense(scmd) == FAILED ) { list_for_each_entry()
1417 stu_scmd = scmd; list_for_each_entry()
1432 list_for_each_entry_safe(scmd, next, list_for_each_entry_safe()
1434 if (scmd->device == sdev && list_for_each_entry_safe()
1435 scsi_eh_action(scmd, SUCCESS) == SUCCESS) list_for_each_entry_safe()
1436 scsi_eh_finish_cmd(scmd, done_q); list_for_each_entry_safe()
1467 struct scsi_cmnd *scmd, *bdr_scmd, *next; scsi_eh_bus_device_reset() local
1480 list_for_each_entry(scmd, work_q, eh_entry) list_for_each_entry()
1481 if (scmd->device == sdev) { list_for_each_entry()
1482 bdr_scmd = scmd; list_for_each_entry()
1497 list_for_each_entry_safe(scmd, next, list_for_each_entry_safe()
1499 if (scmd->device == sdev && list_for_each_entry_safe()
1500 scsi_eh_action(scmd, rtn) != FAILED) list_for_each_entry_safe()
1501 scsi_eh_finish_cmd(scmd, list_for_each_entry_safe()
1534 struct scsi_cmnd *next, *scmd; scsi_eh_target_reset() local
1549 scmd = list_entry(tmp_list.next, struct scsi_cmnd, eh_entry); scsi_eh_target_reset()
1550 id = scmd_id(scmd); scsi_eh_target_reset()
1556 rtn = scsi_try_target_reset(scmd); scsi_eh_target_reset()
1563 list_for_each_entry_safe(scmd, next, &tmp_list, eh_entry) { scsi_eh_target_reset()
1564 if (scmd_id(scmd) != id) scsi_eh_target_reset()
1568 list_move_tail(&scmd->eh_entry, &check_list); scsi_eh_target_reset()
1570 scsi_eh_finish_cmd(scmd, done_q); scsi_eh_target_reset()
1573 list_move(&scmd->eh_entry, work_q); scsi_eh_target_reset()
1590 struct scsi_cmnd *scmd, *chan_scmd, *next; scsi_eh_bus_reset() local
1613 list_for_each_entry(scmd, work_q, eh_entry) { list_for_each_entry()
1614 if (channel == scmd_channel(scmd)) { list_for_each_entry()
1615 chan_scmd = scmd; list_for_each_entry()
1632 list_for_each_entry_safe(scmd, next, work_q, eh_entry) { list_for_each_entry_safe()
1633 if (channel == scmd_channel(scmd)) { list_for_each_entry_safe()
1635 scsi_eh_finish_cmd(scmd, list_for_each_entry_safe()
1638 list_move_tail(&scmd->eh_entry, list_for_each_entry_safe()
1662 struct scsi_cmnd *scmd, *next; scsi_eh_host_reset() local
1667 scmd = list_entry(work_q->next, scsi_eh_host_reset()
1675 rtn = scsi_try_host_reset(scmd); scsi_eh_host_reset()
1679 list_for_each_entry_safe(scmd, next, work_q, eh_entry) { list_for_each_entry_safe()
1680 scsi_eh_finish_cmd(scmd, done_q); list_for_each_entry_safe()
1700 struct scsi_cmnd *scmd, *next; scsi_eh_offline_sdevs() local
1702 list_for_each_entry_safe(scmd, next, work_q, eh_entry) { list_for_each_entry_safe()
1703 sdev_printk(KERN_INFO, scmd->device, "Device offlined - " list_for_each_entry_safe()
1705 scsi_device_set_state(scmd->device, SDEV_OFFLINE); list_for_each_entry_safe()
1706 if (scmd->eh_eflags & SCSI_EH_CANCEL_CMD) { list_for_each_entry_safe()
1711 scsi_eh_finish_cmd(scmd, done_q); list_for_each_entry_safe()
1718 * @scmd: SCSI cmd to examine.
1720 int scsi_noretry_cmd(struct scsi_cmnd *scmd) scsi_noretry_cmd() argument
1722 switch (host_byte(scmd->result)) { scsi_noretry_cmd()
1728 return (scmd->request->cmd_flags & REQ_FAILFAST_TRANSPORT); scsi_noretry_cmd()
1730 return (scmd->request->cmd_flags & REQ_FAILFAST_DEV); scsi_noretry_cmd()
1732 if (msg_byte(scmd->result) == COMMAND_COMPLETE && scsi_noretry_cmd()
1733 status_byte(scmd->result) == RESERVATION_CONFLICT) scsi_noretry_cmd()
1737 return (scmd->request->cmd_flags & REQ_FAILFAST_DRIVER); scsi_noretry_cmd()
1740 if (status_byte(scmd->result) != CHECK_CONDITION) scsi_noretry_cmd()
1748 if (scmd->request->cmd_flags & REQ_FAILFAST_DEV || scsi_noretry_cmd()
1749 scmd->request->cmd_type == REQ_TYPE_BLOCK_PC) scsi_noretry_cmd()
1757 * @scmd: SCSI cmd to examine.
1769 int scsi_decide_disposition(struct scsi_cmnd *scmd) scsi_decide_disposition() argument
1777 if (!scsi_device_online(scmd->device)) { scsi_decide_disposition()
1778 SCSI_LOG_ERROR_RECOVERY(5, scmd_printk(KERN_INFO, scmd, scsi_decide_disposition()
1787 switch (host_byte(scmd->result)) { scsi_decide_disposition()
1794 scmd->result &= 0xff00ffff; scsi_decide_disposition()
1802 if (scmd->eh_eflags & SCSI_EH_ABORT_SCHEDULED) { scsi_decide_disposition()
1803 set_host_byte(scmd, DID_TIME_OUT); scsi_decide_disposition()
1846 if (msg_byte(scmd->result) == COMMAND_COMPLETE && scsi_decide_disposition()
1847 status_byte(scmd->result) == RESERVATION_CONFLICT) scsi_decide_disposition()
1863 if ((scmd->cmnd[0] == TEST_UNIT_READY || scsi_decide_disposition()
1864 scmd->cmnd[0] == INQUIRY)) { scsi_decide_disposition()
1878 if (msg_byte(scmd->result) != COMMAND_COMPLETE) scsi_decide_disposition()
1884 switch (status_byte(scmd->result)) { scsi_decide_disposition()
1886 scsi_handle_queue_full(scmd->device); scsi_decide_disposition()
1900 if (scmd->cmnd[0] == REPORT_LUNS) scsi_decide_disposition()
1901 scmd->device->sdev_target->expecting_lun_change = 0; scsi_decide_disposition()
1902 scsi_handle_queue_ramp_up(scmd->device); scsi_decide_disposition()
1908 rtn = scsi_check_sense(scmd); scsi_decide_disposition()
1926 sdev_printk(KERN_INFO, scmd->device, scsi_decide_disposition()
1928 set_host_byte(scmd, DID_NEXUS_FAILURE); scsi_decide_disposition()
1941 if ((++scmd->retries) <= scmd->allowed scsi_decide_disposition()
1942 && !scsi_noretry_cmd(scmd)) { scsi_decide_disposition()
2088 struct scsi_cmnd *scmd, *next; scsi_eh_flush_done_q() local
2090 list_for_each_entry_safe(scmd, next, done_q, eh_entry) { list_for_each_entry_safe()
2091 list_del_init(&scmd->eh_entry); list_for_each_entry_safe()
2092 if (scsi_device_online(scmd->device) && list_for_each_entry_safe()
2093 !scsi_noretry_cmd(scmd) && list_for_each_entry_safe()
2094 (++scmd->retries <= scmd->allowed)) { list_for_each_entry_safe()
2096 scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
2099 scsi_queue_insert(scmd, SCSI_MLQUEUE_EH_RETRY); list_for_each_entry_safe()
2103 * scsi_eh_get_sense), scmd->result is already list_for_each_entry_safe()
2106 if (!scmd->result) list_for_each_entry_safe()
2107 scmd->result |= (DRIVER_TIMEOUT << 24); list_for_each_entry_safe()
2109 scmd_printk(KERN_INFO, scmd, list_for_each_entry_safe()
2112 scsi_finish_command(scmd); list_for_each_entry_safe()
2317 scsi_reset_provider_done_command(struct scsi_cmnd *scmd) scsi_reset_provider_done_command() argument
2329 struct scsi_cmnd *scmd; scsi_ioctl_reset() local
2346 scmd = scsi_get_command(dev, GFP_KERNEL); scsi_ioctl_reset()
2347 if (!scmd) scsi_ioctl_reset()
2351 scmd->request = &req; scsi_ioctl_reset()
2353 scmd->cmnd = req.cmd; scsi_ioctl_reset()
2355 scmd->scsi_done = scsi_reset_provider_done_command; scsi_ioctl_reset()
2356 memset(&scmd->sdb, 0, sizeof(scmd->sdb)); scsi_ioctl_reset()
2358 scmd->cmd_len = 0; scsi_ioctl_reset()
2360 scmd->sc_data_direction = DMA_BIDIRECTIONAL; scsi_ioctl_reset()
2371 rtn = scsi_try_bus_device_reset(scmd); scsi_ioctl_reset()
2376 rtn = scsi_try_target_reset(scmd); scsi_ioctl_reset()
2381 rtn = scsi_try_bus_reset(scmd); scsi_ioctl_reset()
2386 rtn = scsi_try_host_reset(scmd); scsi_ioctl_reset()
2412 scsi_put_command(scmd); scsi_ioctl_reset()
883 scsi_try_to_abort_cmd(struct scsi_host_template *hostt, struct scsi_cmnd *scmd) scsi_try_to_abort_cmd() argument
H A Dsd_dif.c114 void sd_dif_prepare(struct scsi_cmnd *scmd) sd_dif_prepare() argument
122 sdkp = scsi_disk(scmd->request->rq_disk); sd_dif_prepare()
127 phys = scsi_prot_ref_tag(scmd); sd_dif_prepare()
129 __rq_for_each_bio(bio, scmd->request) { sd_dif_prepare()
164 void sd_dif_complete(struct scsi_cmnd *scmd, unsigned int good_bytes) sd_dif_complete() argument
173 sdkp = scsi_disk(scmd->request->rq_disk); sd_dif_complete()
178 intervals = good_bytes / scsi_prot_interval(scmd); sd_dif_complete()
179 phys = scsi_prot_ref_tag(scmd); sd_dif_complete()
181 __rq_for_each_bio(bio, scmd->request) { sd_dif_complete()
H A Dmvumi.c198 * @scmd: SCSI command from the mid-layer
204 static int mvumi_make_sgl(struct mvumi_hba *mhba, struct scsi_cmnd *scmd, mvumi_make_sgl() argument
210 unsigned int sgnum = scsi_sg_count(scmd); mvumi_make_sgl()
214 sg = scsi_sglist(scmd); mvumi_make_sgl()
216 (int) scmd->sc_data_direction); mvumi_make_sgl()
235 scmd->SCp.dma_handle = scsi_bufflen(scmd) ? mvumi_make_sgl()
236 pci_map_single(mhba->pdev, scsi_sglist(scmd), mvumi_make_sgl()
237 scsi_bufflen(scmd), mvumi_make_sgl()
238 (int) scmd->sc_data_direction) mvumi_make_sgl()
240 busaddr = scmd->SCp.dma_handle; mvumi_make_sgl()
244 sgd_setsz(mhba, m_sg, cpu_to_le32(scsi_bufflen(scmd))); mvumi_make_sgl()
365 cmd->scmd = NULL; mvumi_return_cmd()
724 static int mvumi_host_reset(struct scsi_cmnd *scmd) mvumi_host_reset() argument
728 mhba = (struct mvumi_hba *) scmd->device->host->hostdata; mvumi_host_reset()
730 scmd_printk(KERN_NOTICE, scmd, "RESET -%ld cmd=%x retries=%x\n", mvumi_host_reset()
731 scmd->serial_number, scmd->cmnd[0], scmd->retries); mvumi_host_reset()
814 cmd->scmd = NULL; mvumi_flush_cache()
1328 struct scsi_cmnd *scmd = cmd->scmd; mvumi_complete_cmd() local
1330 cmd->scmd->SCp.ptr = NULL; mvumi_complete_cmd()
1331 scmd->result = ob_frame->req_status; mvumi_complete_cmd()
1335 scmd->result |= DID_OK << 16; mvumi_complete_cmd()
1338 scmd->result |= DID_BUS_BUSY << 16; mvumi_complete_cmd()
1341 scmd->result |= (DID_OK << 16); mvumi_complete_cmd()
1343 memcpy(cmd->scmd->sense_buffer, ob_frame->payload, mvumi_complete_cmd()
1345 scmd->result |= (DRIVER_SENSE << 24); mvumi_complete_cmd()
1349 scmd->result |= (DRIVER_INVALID << 24) | (DID_ABORT << 16); mvumi_complete_cmd()
1353 if (scsi_bufflen(scmd)) { mvumi_complete_cmd()
1354 if (scsi_sg_count(scmd)) { mvumi_complete_cmd()
1356 scsi_sglist(scmd), mvumi_complete_cmd()
1357 scsi_sg_count(scmd), mvumi_complete_cmd()
1358 (int) scmd->sc_data_direction); mvumi_complete_cmd()
1361 scmd->SCp.dma_handle, mvumi_complete_cmd()
1362 scsi_bufflen(scmd), mvumi_complete_cmd()
1363 (int) scmd->sc_data_direction); mvumi_complete_cmd()
1365 scmd->SCp.dma_handle = 0; mvumi_complete_cmd()
1368 cmd->scmd->scsi_done(scmd); mvumi_complete_cmd()
1465 cmd->scmd = NULL; mvumi_inquiry()
1744 cmd->scmd = NULL; mvumi_get_event()
1819 if (cmd->scmd) mvumi_handle_clob()
2056 * @scmd: SCSI command
2063 struct scsi_cmnd *scmd, struct mvumi_cmd *cmd) mvumi_build_frame()
2067 cmd->scmd = scmd; mvumi_build_frame()
2070 pframe->device_id = ((unsigned short) scmd->device->id) | mvumi_build_frame()
2071 (((unsigned short) scmd->device->lun) << 8); mvumi_build_frame()
2074 switch (scmd->sc_data_direction) { mvumi_build_frame()
2087 "cmd[0x%x]\n", scmd->sc_data_direction, scmd->cmnd[0]); mvumi_build_frame()
2091 pframe->cdb_length = scmd->cmd_len; mvumi_build_frame()
2092 memcpy(pframe->cdb, scmd->cmnd, pframe->cdb_length); mvumi_build_frame()
2094 if (scsi_bufflen(scmd)) { mvumi_build_frame()
2095 if (mvumi_make_sgl(mhba, scmd, &pframe->payload[0], mvumi_build_frame()
2099 pframe->data_transfer_length = scsi_bufflen(scmd); mvumi_build_frame()
2107 scmd->result = (DID_OK << 16) | (DRIVER_SENSE << 24) | mvumi_build_frame()
2109 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x24, mvumi_build_frame()
2116 * @scmd: SCSI command to be queued
2120 struct scsi_cmnd *scmd) mvumi_queue_command()
2127 scsi_cmd_get_serial(shost, scmd); mvumi_queue_command()
2130 scmd->result = 0; mvumi_queue_command()
2137 if (unlikely(mvumi_build_frame(mhba, scmd, cmd))) mvumi_queue_command()
2140 cmd->scmd = scmd; mvumi_queue_command()
2141 scmd->SCp.ptr = (char *) cmd; mvumi_queue_command()
2148 scmd->scsi_done(scmd); mvumi_queue_command()
2153 static enum blk_eh_timer_return mvumi_timed_out(struct scsi_cmnd *scmd) mvumi_timed_out() argument
2155 struct mvumi_cmd *cmd = (struct mvumi_cmd *) scmd->SCp.ptr; mvumi_timed_out()
2156 struct Scsi_Host *host = scmd->device->host; mvumi_timed_out()
2171 scmd->result = (DRIVER_INVALID << 24) | (DID_ABORT << 16); mvumi_timed_out()
2172 scmd->SCp.ptr = NULL; mvumi_timed_out()
2173 if (scsi_bufflen(scmd)) { mvumi_timed_out()
2174 if (scsi_sg_count(scmd)) { mvumi_timed_out()
2176 scsi_sglist(scmd), mvumi_timed_out()
2177 scsi_sg_count(scmd), mvumi_timed_out()
2178 (int)scmd->sc_data_direction); mvumi_timed_out()
2181 scmd->SCp.dma_handle, mvumi_timed_out()
2182 scsi_bufflen(scmd), mvumi_timed_out()
2183 (int)scmd->sc_data_direction); mvumi_timed_out()
2185 scmd->SCp.dma_handle = 0; mvumi_timed_out()
2062 mvumi_build_frame(struct mvumi_hba *mhba, struct scsi_cmnd *scmd, struct mvumi_cmd *cmd) mvumi_build_frame() argument
2119 mvumi_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd) mvumi_queue_command() argument
H A Dscsi_logging.c72 static inline const char *scmd_name(const struct scsi_cmnd *scmd) scmd_name() argument
74 return scmd->request->rq_disk ? scmd_name()
75 scmd->request->rq_disk->disk_name : NULL; scmd_name()
123 void scmd_printk(const char *level, const struct scsi_cmnd *scmd, scmd_printk() argument
130 if (!scmd || !scmd->cmnd) scmd_printk()
136 off = sdev_format_header(logbuf, logbuf_len, scmd_name(scmd), scmd_printk()
137 scmd->request->tag); scmd_printk()
143 dev_printk(level, &scmd->device->sdev_gendev, "%s", logbuf); scmd_printk()
H A Dsd.h117 static inline int scsi_medium_access_command(struct scsi_cmnd *scmd) scsi_medium_access_command() argument
119 switch (scmd->cmnd[0]) { scsi_medium_access_command()
137 switch (scmd->cmnd[9]) { scsi_medium_access_command()
249 extern void sd_dif_prepare(struct scsi_cmnd *scmd);
257 static inline int sd_dif_prepare(struct scsi_cmnd *scmd) sd_dif_prepare() argument
H A Dscsi_priv.h24 #define SCSI_SENSE_VALID(scmd) \
25 (((scmd)->sense_buffer[0] & 0x70) == 0x70)
80 int scsi_noretry_cmd(struct scsi_cmnd *scmd);
H A Dsd.c596 static unsigned char sd_setup_protect_cmnd(struct scsi_cmnd *scmd, sd_setup_protect_cmnd() argument
599 struct bio *bio = scmd->request->bio; sd_setup_protect_cmnd()
600 unsigned int prot_op = sd_prot_op(rq_data_dir(scmd->request), dix, dif); sd_setup_protect_cmnd()
605 scmd->prot_flags |= SCSI_PROT_IP_CHECKSUM; sd_setup_protect_cmnd()
608 scmd->prot_flags |= SCSI_PROT_GUARD_CHECK; sd_setup_protect_cmnd()
612 scmd->prot_flags |= SCSI_PROT_REF_INCREMENT; sd_setup_protect_cmnd()
615 scmd->prot_flags |= SCSI_PROT_REF_CHECK; sd_setup_protect_cmnd()
619 scmd->prot_flags |= SCSI_PROT_TRANSFER_PI; sd_setup_protect_cmnd()
627 scsi_set_prot_op(scmd, prot_op); sd_setup_protect_cmnd()
628 scsi_set_prot_type(scmd, dif); sd_setup_protect_cmnd()
629 scmd->prot_flags &= sd_prot_flag_mask(prot_op); sd_setup_protect_cmnd()
1665 * @scmd: sd-issued command that has failed
1675 static int sd_eh_action(struct scsi_cmnd *scmd, int eh_disp) sd_eh_action() argument
1677 struct scsi_disk *sdkp = scsi_disk(scmd->request->rq_disk); sd_eh_action()
1679 if (!scsi_device_online(scmd->device) || sd_eh_action()
1680 !scsi_medium_access_command(scmd) || sd_eh_action()
1681 host_byte(scmd->result) != DID_TIME_OUT || sd_eh_action()
1700 scmd_printk(KERN_ERR, scmd, sd_eh_action()
1702 scsi_device_set_state(scmd->device, SDEV_OFFLINE); sd_eh_action()
1710 static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd) sd_completed_bytes() argument
1712 u64 start_lba = blk_rq_pos(scmd->request); sd_completed_bytes()
1713 u64 end_lba = blk_rq_pos(scmd->request) + (scsi_bufflen(scmd) / 512); sd_completed_bytes()
1714 u64 factor = scmd->device->sector_size / 512; sd_completed_bytes()
1721 unsigned int transferred = scsi_bufflen(scmd) - scsi_get_resid(scmd); sd_completed_bytes()
1724 if (scmd->request->cmd_type != REQ_TYPE_FS) sd_completed_bytes()
1727 info_valid = scsi_get_sense_info_fld(scmd->sense_buffer, sd_completed_bytes()
1733 if (scsi_bufflen(scmd) <= scmd->device->sector_size) sd_completed_bytes()
1749 good_bytes = (bad_lba - start_lba) * scmd->device->sector_size; sd_completed_bytes()
H A D53c700.h27 #define CDEBUG(prefix, scmd, fmt, a...) \
28 scmd_printk(prefix, scmd, fmt, ##a)
31 #define DDEBUG(prefix, scmd, fmt, a...) do {} while (0)
32 #define CDEBUG(prefix, scmd, fmt, a...) do {} while (0)
H A Dst.c3116 unsigned char scmd[MAX_COMMAND_SIZE]; get_location()
3122 memset(scmd, 0, MAX_COMMAND_SIZE); get_location()
3124 scmd[0] = QFA_REQUEST_BLOCK; get_location()
3125 scmd[4] = 3; get_location()
3127 scmd[0] = READ_POSITION; get_location()
3129 scmd[1] = 1; get_location()
3131 SRpnt = st_do_scsi(NULL, STp, scmd, 20, DMA_FROM_DEVICE, get_location()
3179 unsigned char scmd[MAX_COMMAND_SIZE]; set_location()
3208 memset(scmd, 0, MAX_COMMAND_SIZE); set_location()
3210 scmd[0] = QFA_SEEK_BLOCK; set_location()
3211 scmd[2] = (block >> 16); set_location()
3212 scmd[3] = (block >> 8); set_location()
3213 scmd[4] = block; set_location()
3214 scmd[5] = 0; set_location()
3216 scmd[0] = SEEK_10; set_location()
3217 scmd[3] = (block >> 24); set_location()
3218 scmd[4] = (block >> 16); set_location()
3219 scmd[5] = (block >> 8); set_location()
3220 scmd[6] = block; set_location()
3222 scmd[1] = 4; set_location()
3224 scmd[1] |= 2; set_location()
3225 scmd[8] = partition; set_location()
3232 scmd[1] |= 1; /* Don't wait for completion */ set_location()
3236 SRpnt = st_do_scsi(NULL, STp, scmd, 0, DMA_NONE, set_location()
3103 unsigned char scmd[MAX_COMMAND_SIZE]; get_location() local
3166 unsigned char scmd[MAX_COMMAND_SIZE]; set_location() local
H A Dscsi_transport_srp.c623 * @scmd: SCSI command.
632 static enum blk_eh_timer_return srp_timed_out(struct scsi_cmnd *scmd) srp_timed_out() argument
634 struct scsi_device *sdev = scmd->device; srp_timed_out()
H A Dosst.c2887 unsigned char scmd[MAX_COMMAND_SIZE]; osst_get_frame_position()
2900 memset (scmd, 0, MAX_COMMAND_SIZE); osst_get_frame_position()
2901 scmd[0] = READ_POSITION; osst_get_frame_position()
2904 SRpnt = osst_do_scsi(*aSRpnt, STp, scmd, 20, DMA_FROM_DEVICE, osst_get_frame_position()
2921 memset (scmd, 0, MAX_COMMAND_SIZE); osst_get_frame_position()
2922 scmd[0] = READ_POSITION; osst_get_frame_position()
2924 SRpnt = osst_do_scsi(SRpnt, STp, scmd, 20, DMA_FROM_DEVICE, osst_get_frame_position()
2971 unsigned char scmd[MAX_COMMAND_SIZE]; osst_set_frame_position()
2993 memset (scmd, 0, MAX_COMMAND_SIZE); osst_set_frame_position()
2994 scmd[0] = SEEK_10; osst_set_frame_position()
2995 scmd[1] = 1; osst_set_frame_position()
2996 scmd[3] = (pp >> 24); osst_set_frame_position()
2997 scmd[4] = (pp >> 16); osst_set_frame_position()
2998 scmd[5] = (pp >> 8); osst_set_frame_position()
2999 scmd[6] = pp; osst_set_frame_position()
3001 scmd[9] = 0x80; osst_set_frame_position()
3003 SRpnt = osst_do_scsi(*aSRpnt, STp, scmd, 0, DMA_NONE, STp->long_timeout, osst_set_frame_position()
2885 unsigned char scmd[MAX_COMMAND_SIZE]; osst_get_frame_position() local
2969 unsigned char scmd[MAX_COMMAND_SIZE]; osst_set_frame_position() local
H A Dmvumi.h266 struct scsi_cmnd *scmd; member in struct:mvumi_cmd
H A Dpmcraid.c3059 * @scmd: pointer to scsi_cmd that was sent to the resource to be reset.
3070 static int pmcraid_eh_device_reset_handler(struct scsi_cmnd *scmd) pmcraid_eh_device_reset_handler() argument
3072 scmd_printk(KERN_INFO, scmd, pmcraid_eh_device_reset_handler()
3074 return pmcraid_reset_device(scmd, pmcraid_eh_device_reset_handler()
3079 static int pmcraid_eh_bus_reset_handler(struct scsi_cmnd *scmd) pmcraid_eh_bus_reset_handler() argument
3081 scmd_printk(KERN_INFO, scmd, pmcraid_eh_bus_reset_handler()
3083 return pmcraid_reset_device(scmd, pmcraid_eh_bus_reset_handler()
3088 static int pmcraid_eh_target_reset_handler(struct scsi_cmnd *scmd) pmcraid_eh_target_reset_handler() argument
3090 scmd_printk(KERN_INFO, scmd, pmcraid_eh_target_reset_handler()
3092 return pmcraid_reset_device(scmd, pmcraid_eh_target_reset_handler()
3100 * @scmd: pointer to scsi_cmd that was sent to a resource of adapter
3107 static int pmcraid_eh_host_reset_handler(struct scsi_cmnd *scmd) pmcraid_eh_host_reset_handler() argument
3112 (struct pmcraid_instance *)(scmd->device->host->hostdata); pmcraid_eh_host_reset_handler()
H A Dhpsa.c241 struct scsi_cmnd *scmd);
5308 static int hpsa_get_cmd_index(struct scsi_cmnd *scmd) hpsa_get_cmd_index() argument
5310 int idx = scmd->request->tag; hpsa_get_cmd_index()
5592 struct scsi_cmnd *scmd = command_to_abort->scsi_cmd; setup_ioaccel2_abort_cmd() local
5593 struct hpsa_scsi_dev_t *dev = scmd->device->hostdata; setup_ioaccel2_abort_cmd()
5638 struct scsi_cmnd *scmd; /* scsi command within request being aborted */ hpsa_send_reset_as_abort_ioaccel2() local
5644 scmd = abort->scsi_cmd; hpsa_send_reset_as_abort_ioaccel2()
5645 dev = (struct hpsa_scsi_dev_t *)(scmd->device->hostdata); hpsa_send_reset_as_abort_ioaccel2()
5933 struct scsi_cmnd *scmd) cmd_tagged_alloc()
5935 int idx = hpsa_get_cmd_index(scmd); cmd_tagged_alloc()
5960 scsi_print_command(scmd); cmd_tagged_alloc()
5932 cmd_tagged_alloc(struct ctlr_info *h, struct scsi_cmnd *scmd) cmd_tagged_alloc() argument
H A Dmegaraid.c366 * @scmd - Issue this scsi command
372 megaraid_queue_lck(Scsi_Cmnd *scmd, void (*done)(Scsi_Cmnd *)) megaraid_queue_lck() argument
379 adapter = (adapter_t *)scmd->device->host->hostdata; megaraid_queue_lck()
381 scmd->scsi_done = done; megaraid_queue_lck()
394 scb = mega_build_cmd(adapter, scmd, &busy); megaraid_queue_lck()
H A Dscsi_debug.c2362 do_device_access(struct scsi_cmnd *scmd, u64 lba, u32 num, bool do_write) do_device_access() argument
2370 sdb = scsi_out(scmd); do_device_access()
2373 sdb = scsi_in(scmd); do_device_access()
2379 if (!(scsi_bidi_cmnd(scmd) || scmd->sc_data_direction == dir)) do_device_access()
H A Dips.c320 static void ips_scmd_buf_write(struct scsi_cmnd * scmd, void *data,
322 static void ips_scmd_buf_read(struct scsi_cmnd * scmd, void *data,
3427 ips_scmd_buf_write(struct scsi_cmnd *scmd, void *data, unsigned int count) ips_scmd_buf_write() argument
3432 scsi_sg_copy_from_buffer(scmd, data, count); ips_scmd_buf_write()
3444 ips_scmd_buf_read(struct scsi_cmnd *scmd, void *data, unsigned int count) ips_scmd_buf_read() argument
3449 scsi_sg_copy_to_buffer(scmd, data, count); ips_scmd_buf_read()
H A Dscsi.c495 "Send: scmd 0x%p\n", cmd); scsi_log_send()
H A Dscsi_transport_fc.c2059 * @scmd: The SCSI command which timed out
2080 fc_timed_out(struct scsi_cmnd *scmd) fc_timed_out() argument
2082 struct fc_rport *rport = starget_to_rport(scsi_target(scmd->device)); fc_timed_out()
/linux-4.4.14/include/scsi/
H A Dscsi_eh.h11 extern void scsi_eh_finish_cmd(struct scsi_cmnd *scmd,
45 extern void scsi_eh_prep_cmnd(struct scsi_cmnd *scmd,
49 extern void scsi_eh_restore_cmnd(struct scsi_cmnd* scmd,
H A Dscsi_cmnd.h56 /* for scmd->flags */
251 static inline void scsi_set_prot_op(struct scsi_cmnd *scmd, unsigned char op) scsi_set_prot_op() argument
253 scmd->prot_op = op; scsi_set_prot_op()
256 static inline unsigned char scsi_get_prot_op(struct scsi_cmnd *scmd) scsi_get_prot_op() argument
258 return scmd->prot_op; scsi_get_prot_op()
282 static inline void scsi_set_prot_type(struct scsi_cmnd *scmd, unsigned char type) scsi_set_prot_type() argument
284 scmd->prot_type = type; scsi_set_prot_type()
287 static inline unsigned char scsi_get_prot_type(struct scsi_cmnd *scmd) scsi_get_prot_type() argument
289 return scmd->prot_type; scsi_get_prot_type()
292 static inline sector_t scsi_get_lba(struct scsi_cmnd *scmd) scsi_get_lba() argument
294 return blk_rq_pos(scmd->request); scsi_get_lba()
297 static inline unsigned int scsi_prot_interval(struct scsi_cmnd *scmd) scsi_prot_interval() argument
299 return scmd->device->sector_size; scsi_prot_interval()
302 static inline u32 scsi_prot_ref_tag(struct scsi_cmnd *scmd) scsi_prot_ref_tag() argument
304 return blk_rq_pos(scmd->request) >> scsi_prot_ref_tag()
305 (ilog2(scsi_prot_interval(scmd)) - 9) & 0xffffffff; scsi_prot_ref_tag()
341 static inline unsigned scsi_transfer_length(struct scsi_cmnd *scmd) scsi_transfer_length() argument
343 unsigned int xfer_len = scsi_out(scmd)->length; scsi_transfer_length()
344 unsigned int prot_interval = scsi_prot_interval(scmd); scsi_transfer_length()
346 if (scmd->prot_flags & SCSI_PROT_TRANSFER_PI) scsi_transfer_length()
H A Dscsi_device.h230 #define scmd_dbg(scmd, fmt, a...) \
232 if ((scmd)->request->rq_disk) \
233 sdev_dbg((scmd)->device, "[%s] " fmt, \
234 (scmd)->request->rq_disk->disk_name, ##a);\
236 sdev_dbg((scmd)->device, fmt, ##a); \
442 #define scmd_id(scmd) sdev_id((scmd)->device)
443 #define scmd_channel(scmd) sdev_channel((scmd)->device)
/linux-4.4.14/drivers/s390/scsi/
H A Dzfcp_dbf.h314 void _zfcp_dbf_scsi(char *tag, int level, struct scsi_cmnd *scmd, _zfcp_dbf_scsi() argument
318 scmd->device->host->hostdata[0]; _zfcp_dbf_scsi()
321 zfcp_dbf_scsi(tag, scmd, req); _zfcp_dbf_scsi()
326 * @scmd: SCSI command pointer
330 void zfcp_dbf_scsi_result(struct scsi_cmnd *scmd, struct zfcp_fsf_req *req) zfcp_dbf_scsi_result() argument
332 if (scmd->result != 0) zfcp_dbf_scsi_result()
333 _zfcp_dbf_scsi("rsl_err", 3, scmd, req); zfcp_dbf_scsi_result()
334 else if (scmd->retries > 0) zfcp_dbf_scsi_result()
335 _zfcp_dbf_scsi("rsl_ret", 4, scmd, req); zfcp_dbf_scsi_result()
337 _zfcp_dbf_scsi("rsl_nor", 6, scmd, req); zfcp_dbf_scsi_result()
342 * @scmd: SCSI command pointer
345 void zfcp_dbf_scsi_fail_send(struct scsi_cmnd *scmd) zfcp_dbf_scsi_fail_send() argument
347 _zfcp_dbf_scsi("rsl_fai", 4, scmd, NULL); zfcp_dbf_scsi_fail_send()
353 * @scmd: SCSI command to be aborted
357 void zfcp_dbf_scsi_abort(char *tag, struct scsi_cmnd *scmd, zfcp_dbf_scsi_abort() argument
360 _zfcp_dbf_scsi(tag, 1, scmd, fsf_req); zfcp_dbf_scsi_abort()
H A Dzfcp_scsi.c666 * @scmd: The SCSI command to report the error for
672 void zfcp_scsi_dif_sense_error(struct scsi_cmnd *scmd, int ascq) zfcp_scsi_dif_sense_error() argument
674 scsi_build_sense_buffer(1, scmd->sense_buffer, zfcp_scsi_dif_sense_error()
676 set_driver_byte(scmd, DRIVER_SENSE); zfcp_scsi_dif_sense_error()
677 scmd->result |= SAM_STAT_CHECK_CONDITION; zfcp_scsi_dif_sense_error()
678 set_host_byte(scmd, DID_SOFT_ERROR); zfcp_scsi_dif_sense_error()
/linux-4.4.14/drivers/scsi/mpt3sas/
H A Dmpt3sas_scsih.c1060 * _scsih_scsi_lookup_get - returns scmd entry
1064 * Returns the smid stored scmd pointer.
1069 return ioc->scsi_lookup[smid - 1].scmd; _scsih_scsi_lookup_get()
1073 * _scsih_scsi_lookup_get_clear - returns scmd entry
1077 * Returns the smid stored scmd pointer.
1078 * Then will derefrence the stored scmd pointer.
1084 struct scsi_cmnd *scmd; _scsih_scsi_lookup_get_clear() local
1087 scmd = ioc->scsi_lookup[smid - 1].scmd; _scsih_scsi_lookup_get_clear()
1088 ioc->scsi_lookup[smid - 1].scmd = NULL; _scsih_scsi_lookup_get_clear()
1091 return scmd; _scsih_scsi_lookup_get_clear()
1095 * _scsih_scsi_lookup_find_by_scmd - scmd lookup
1098 * @scmd: pointer to scsi command object
1101 * This will search for a scmd pointer in the scsi_lookup array,
1106 *scmd) _scsih_scsi_lookup_find_by_scmd()
1115 if (ioc->scsi_lookup[i].scmd == scmd) { _scsih_scsi_lookup_find_by_scmd()
1146 if (ioc->scsi_lookup[i].scmd && _scsih_scsi_lookup_find_by_target()
1147 (ioc->scsi_lookup[i].scmd->device->id == id && _scsih_scsi_lookup_find_by_target()
1148 ioc->scsi_lookup[i].scmd->device->channel == channel)) { _scsih_scsi_lookup_find_by_target()
1180 if (ioc->scsi_lookup[i].scmd && _scsih_scsi_lookup_find_by_lun()
1181 (ioc->scsi_lookup[i].scmd->device->id == id && _scsih_scsi_lookup_find_by_lun()
1182 ioc->scsi_lookup[i].scmd->device->channel == channel && _scsih_scsi_lookup_find_by_lun()
1183 ioc->scsi_lookup[i].scmd->device->lun == lun)) { _scsih_scsi_lookup_find_by_lun()
2295 if (scsi_lookup->scmd == NULL) mpt3sas_scsih_issue_tm()
2337 * @scmd: pointer to scsi command object
2342 _scsih_tm_display_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd) _scsih_tm_display_info() argument
2344 struct scsi_target *starget = scmd->device->sdev_target; _scsih_tm_display_info()
2357 scsi_print_command(scmd); _scsih_tm_display_info()
2400 * @scmd: pointer to scsi command object
2405 scsih_abort(struct scsi_cmnd *scmd) scsih_abort() argument
2407 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); scsih_abort()
2413 sdev_printk(KERN_INFO, scmd->device, scsih_abort()
2414 "attempting task abort! scmd(%p)\n", scmd); scsih_abort()
2415 _scsih_tm_display_info(ioc, scmd); scsih_abort()
2417 sas_device_priv_data = scmd->device->hostdata; scsih_abort()
2419 sdev_printk(KERN_INFO, scmd->device, scsih_abort()
2420 "device been deleted! scmd(%p)\n", scmd); scsih_abort()
2421 scmd->result = DID_NO_CONNECT << 16; scsih_abort()
2422 scmd->scsi_done(scmd); scsih_abort()
2428 smid = _scsih_scsi_lookup_find_by_scmd(ioc, scmd); scsih_abort()
2430 scmd->result = DID_RESET << 16; scsih_abort()
2439 scmd->result = DID_RESET << 16; scsih_abort()
2447 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, scsih_abort()
2448 scmd->device->id, scmd->device->lun, scsih_abort()
2452 sdev_printk(KERN_INFO, scmd->device, "task abort: %s scmd(%p)\n", scsih_abort()
2453 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); scsih_abort()
2459 * @scmd: pointer to scsi command object
2464 scsih_dev_reset(struct scsi_cmnd *scmd) scsih_dev_reset() argument
2466 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); scsih_dev_reset()
2472 struct scsi_target *starget = scmd->device->sdev_target; scsih_dev_reset()
2475 sdev_printk(KERN_INFO, scmd->device, scsih_dev_reset()
2476 "attempting device reset! scmd(%p)\n", scmd); scsih_dev_reset()
2477 _scsih_tm_display_info(ioc, scmd); scsih_dev_reset()
2479 sas_device_priv_data = scmd->device->hostdata; scsih_dev_reset()
2481 sdev_printk(KERN_INFO, scmd->device, scsih_dev_reset()
2482 "device been deleted! scmd(%p)\n", scmd); scsih_dev_reset()
2483 scmd->result = DID_NO_CONNECT << 16; scsih_dev_reset()
2484 scmd->scsi_done(scmd); scsih_dev_reset()
2501 scmd->result = DID_RESET << 16; scsih_dev_reset()
2506 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, scsih_dev_reset()
2507 scmd->device->id, scmd->device->lun, scsih_dev_reset()
2511 sdev_printk(KERN_INFO, scmd->device, "device reset: %s scmd(%p)\n", scsih_dev_reset()
2512 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); scsih_dev_reset()
2522 * @scmd: pointer to scsi command object
2527 scsih_target_reset(struct scsi_cmnd *scmd) scsih_target_reset() argument
2529 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); scsih_target_reset()
2534 struct scsi_target *starget = scmd->device->sdev_target; scsih_target_reset()
2537 starget_printk(KERN_INFO, starget, "attempting target reset! scmd(%p)\n", scsih_target_reset()
2538 scmd); scsih_target_reset()
2539 _scsih_tm_display_info(ioc, scmd); scsih_target_reset()
2541 sas_device_priv_data = scmd->device->hostdata; scsih_target_reset()
2543 starget_printk(KERN_INFO, starget, "target been deleted! scmd(%p)\n", scsih_target_reset()
2544 scmd); scsih_target_reset()
2545 scmd->result = DID_NO_CONNECT << 16; scsih_target_reset()
2546 scmd->scsi_done(scmd); scsih_target_reset()
2563 scmd->result = DID_RESET << 16; scsih_target_reset()
2568 r = mpt3sas_scsih_issue_tm(ioc, handle, scmd->device->channel, scsih_target_reset()
2569 scmd->device->id, 0, MPI2_SCSITASKMGMT_TASKTYPE_TARGET_RESET, 0, scsih_target_reset()
2573 starget_printk(KERN_INFO, starget, "target reset: %s scmd(%p)\n", scsih_target_reset()
2574 ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); scsih_target_reset()
2585 * @scmd: pointer to scsi command object
2590 scsih_host_reset(struct scsi_cmnd *scmd) scsih_host_reset() argument
2592 struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); scsih_host_reset()
2595 pr_info(MPT3SAS_FMT "attempting host reset! scmd(%p)\n", scsih_host_reset()
2596 ioc->name, scmd); scsih_host_reset()
2597 scsi_print_command(scmd); scsih_host_reset()
2610 pr_info(MPT3SAS_FMT "host reset: %s scmd(%p)\n", scsih_host_reset()
2611 ioc->name, ((r == SUCCESS) ? "SUCCESS" : "FAILED"), scmd); scsih_host_reset()
3707 * The flushing out of all pending scmd commands following host reset,
3715 struct scsi_cmnd *scmd; _scsih_flush_running_cmds() local
3720 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); _scsih_flush_running_cmds()
3721 if (!scmd) _scsih_flush_running_cmds()
3725 scsi_dma_unmap(scmd); _scsih_flush_running_cmds()
3727 scmd->result = DID_NO_CONNECT << 16; _scsih_flush_running_cmds()
3729 scmd->result = DID_RESET << 16; _scsih_flush_running_cmds()
3730 scmd->scsi_done(scmd); _scsih_flush_running_cmds()
3739 * @scmd: pointer to scsi command object
3747 _scsih_setup_eedp(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, _scsih_setup_eedp() argument
3751 unsigned char prot_op = scsi_get_prot_op(scmd); _scsih_setup_eedp()
3752 unsigned char prot_type = scsi_get_prot_type(scmd); _scsih_setup_eedp()
3778 cpu_to_be32(scsi_get_lba(scmd)); _scsih_setup_eedp()
3792 cpu_to_le16(scmd->device->sector_size); _scsih_setup_eedp()
3798 * @scmd: pointer to scsi command object
3804 _scsih_eedp_error_handling(struct scsi_cmnd *scmd, u16 ioc_status) _scsih_eedp_error_handling() argument
3822 scsi_build_sense_buffer(0, scmd->sense_buffer, ILLEGAL_REQUEST, 0x10, _scsih_eedp_error_handling()
3824 scmd->result = DRIVER_SENSE << 24 | (DID_ABORT << 16) | _scsih_eedp_error_handling()
3832 * @scmd: pointer to scsi command object
3842 scsih_qcmd(struct Scsi_Host *shost, struct scsi_cmnd *scmd) scsih_qcmd() argument
3854 scsi_print_command(scmd); scsih_qcmd()
3856 sas_device_priv_data = scmd->device->hostdata; scsih_qcmd()
3858 scmd->result = DID_NO_CONNECT << 16; scsih_qcmd()
3859 scmd->scsi_done(scmd); scsih_qcmd()
3864 scmd->result = DID_NO_CONNECT << 16; scsih_qcmd()
3865 scmd->scsi_done(scmd); scsih_qcmd()
3874 scmd->result = DID_NO_CONNECT << 16; scsih_qcmd()
3875 scmd->scsi_done(scmd); scsih_qcmd()
3886 scmd->result = DID_NO_CONNECT << 16; scsih_qcmd()
3887 scmd->scsi_done(scmd); scsih_qcmd()
3894 if (scmd->sc_data_direction == DMA_FROM_DEVICE) scsih_qcmd()
3896 else if (scmd->sc_data_direction == DMA_TO_DEVICE) scsih_qcmd()
3907 if (!ioc->is_warpdrive && !scsih_is_raid(&scmd->device->sdev_gendev) scsih_qcmd()
3908 && sas_is_tlr_enabled(scmd->device) && scmd->cmd_len != 32) scsih_qcmd()
3911 smid = mpt3sas_base_get_smid_scsiio(ioc, ioc->scsi_io_cb_idx, scmd); scsih_qcmd()
3919 _scsih_setup_eedp(ioc, scmd, mpi_request); scsih_qcmd()
3921 if (scmd->cmd_len == 32) scsih_qcmd()
3930 mpi_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); scsih_qcmd()
3932 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len); scsih_qcmd()
3940 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); scsih_qcmd()
3943 if (ioc->build_sg_scmd(ioc, scmd, smid)) { scsih_qcmd()
3952 mpt3sas_setup_direct_io(ioc, scmd, raid_device, mpi_request, scsih_qcmd()
3957 mpi_request->IoFlags = cpu_to_le16(scmd->cmd_len | scsih_qcmd()
3997 * @scmd: pointer to scsi command object
4007 _scsih_scsi_ioc_info(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, _scsih_scsi_ioc_info() argument
4021 struct scsi_target *starget = scmd->device->sdev_target; _scsih_scsi_ioc_info()
4145 scsi_print_command(scmd); _scsih_scsi_ioc_info()
4181 ioc->name, scsi_bufflen(scmd), scmd->underflow, _scsih_scsi_ioc_info()
4182 scsi_get_resid(scmd)); _scsih_scsi_ioc_info()
4186 le32_to_cpu(mpi_reply->TransferCount), scmd->result); _scsih_scsi_ioc_info()
4194 _scsih_normalize_sense(scmd->sense_buffer, &data); _scsih_scsi_ioc_info()
4413 struct scsi_cmnd *scmd; _scsih_io_done() local
4424 scmd = _scsih_scsi_lookup_get_clear(ioc, smid); _scsih_io_done()
4425 if (scmd == NULL) _scsih_io_done()
4431 scmd->result = DID_OK << 16; _scsih_io_done()
4435 sas_device_priv_data = scmd->device->hostdata; _scsih_io_done()
4438 scmd->result = DID_NO_CONNECT << 16; _scsih_io_done()
4451 ioc->scsi_lookup[smid - 1].scmd = scmd; _scsih_io_done()
4454 memcpy(mpi_request->CDB.CDB32, scmd->cmnd, scmd->cmd_len); _scsih_io_done()
4469 !scsih_is_raid(&scmd->device->sdev_gendev) && _scsih_io_done()
4470 sas_is_tlr_enabled(scmd->device) && _scsih_io_done()
4472 sas_disable_tlr(scmd->device); _scsih_io_done()
4473 sdev_printk(KERN_INFO, scmd->device, "TLR disabled\n"); _scsih_io_done()
4478 scsi_set_resid(scmd, scsi_bufflen(scmd) - xfer_cnt); _scsih_io_done()
4499 memcpy(scmd->sense_buffer, sense_data, sz); _scsih_io_done()
4500 _scsih_normalize_sense(scmd->sense_buffer, &data); _scsih_io_done()
4508 ((scmd->sense_buffer[2] == UNIT_ATTENTION) || _scsih_io_done()
4509 (scmd->sense_buffer[2] == MEDIUM_ERROR) || _scsih_io_done()
4510 (scmd->sense_buffer[2] == HARDWARE_ERROR))) _scsih_io_done()
4511 _scsih_scsi_ioc_info(ioc, scmd, mpi_reply, smid); _scsih_io_done()
4516 scmd->result = SAM_STAT_BUSY; _scsih_io_done()
4520 scmd->result = DID_NO_CONNECT << 16; _scsih_io_done()
4525 scmd->result = DID_TRANSPORT_DISRUPTED << 16; _scsih_io_done()
4529 if (scmd->retries > 2) { _scsih_io_done()
4530 scmd->result = DID_NO_CONNECT << 16; _scsih_io_done()
4531 scsi_device_set_state(scmd->device, _scsih_io_done()
4534 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4535 scmd->device->expecting_cc_ua = 1; _scsih_io_done()
4539 scmd->result = DID_RESET << 16; _scsih_io_done()
4542 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4546 scmd->result = DID_RESET << 16; _scsih_io_done()
4550 if ((xfer_cnt == 0) || (scmd->underflow > xfer_cnt)) _scsih_io_done()
4551 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4553 scmd->result = (DID_OK << 16) | scsi_status; _scsih_io_done()
4557 scmd->result = (DID_OK << 16) | scsi_status; _scsih_io_done()
4562 if (xfer_cnt < scmd->underflow) { _scsih_io_done()
4564 scmd->result = SAM_STAT_BUSY; _scsih_io_done()
4566 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4569 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4571 scmd->result = DID_RESET << 16; _scsih_io_done()
4572 else if (!xfer_cnt && scmd->cmnd[0] == REPORT_LUNS) { _scsih_io_done()
4575 scmd->result = (DRIVER_SENSE << 24) | _scsih_io_done()
4577 scmd->sense_buffer[0] = 0x70; _scsih_io_done()
4578 scmd->sense_buffer[2] = ILLEGAL_REQUEST; _scsih_io_done()
4579 scmd->sense_buffer[12] = 0x20; _scsih_io_done()
4580 scmd->sense_buffer[13] = 0; _scsih_io_done()
4585 scsi_set_resid(scmd, 0); _scsih_io_done()
4588 scmd->result = (DID_OK << 16) | scsi_status; _scsih_io_done()
4593 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4595 scmd->result = DID_RESET << 16; _scsih_io_done()
4601 _scsih_eedp_error_handling(scmd, ioc_status); _scsih_io_done()
4613 scmd->result = DID_SOFT_ERROR << 16; _scsih_io_done()
4618 if (scmd->result && (ioc->logging_level & MPT_DEBUG_REPLY)) _scsih_io_done()
4619 _scsih_scsi_ioc_info(ioc , scmd, mpi_reply, smid); _scsih_io_done()
4623 scsi_dma_unmap(scmd); _scsih_io_done()
4625 scmd->scsi_done(scmd); _scsih_io_done()
5822 struct scsi_cmnd *scmd; _scsih_sas_broadcast_primitive_event() local
5865 scmd = _scsih_scsi_lookup_get(ioc, smid); _scsih_sas_broadcast_primitive_event()
5866 if (!scmd) _scsih_sas_broadcast_primitive_event()
5868 sdev = scmd->device; _scsih_sas_broadcast_primitive_event()
5895 "QUERY_TASK: scmd(%p)\n", scmd); _scsih_sas_broadcast_primitive_event()
5903 "query task: FAILED with IOCSTATUS(0x%04x), scmd(%p)\n", _scsih_sas_broadcast_primitive_event()
5904 ioc_status, scmd); _scsih_sas_broadcast_primitive_event()
5936 "scmd(%p)\n", scmd); _scsih_sas_broadcast_primitive_event()
5943 " scmd(%p)\n", _scsih_sas_broadcast_primitive_event()
5944 task_abort_retries - 1, scmd); _scsih_sas_broadcast_primitive_event()
1105 _scsih_scsi_lookup_find_by_scmd(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd) _scsih_scsi_lookup_find_by_scmd() argument
H A Dmpt3sas_warpdrive.c268 * Returns the smid stored scmd pointer.
293 * @scmd: pointer to scsi command object
301 mpt3sas_setup_direct_io(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, mpt3sas_setup_direct_io() argument
307 u8 num_pds, cmd = scmd->cmnd[0]; mpt3sas_setup_direct_io()
318 io_size = scsi_bufflen(scmd) >> raid_device->block_exponent; mpt3sas_setup_direct_io()
H A Dmpt3sas_base.c1357 * @scmd: scsi command
1368 struct scsi_cmnd *scmd, u16 smid) _base_build_sg_scmd()
1388 if (scmd->sc_data_direction == DMA_TO_DEVICE) _base_build_sg_scmd()
1397 sg_scmd = scsi_sglist(scmd); _base_build_sg_scmd()
1398 sges_left = scsi_dma_map(scmd); _base_build_sg_scmd()
1400 sdev_printk(KERN_ERR, scmd->device, _base_build_sg_scmd()
1402 scsi_bufflen(scmd)); _base_build_sg_scmd()
1500 * @scmd: scsi command
1511 struct scsi_cmnd *scmd, u16 smid) _base_build_sg_scmd_ieee()
1536 sg_scmd = scsi_sglist(scmd); _base_build_sg_scmd_ieee()
1537 sges_left = scsi_dma_map(scmd); _base_build_sg_scmd_ieee()
1539 sdev_printk(KERN_ERR, scmd->device, _base_build_sg_scmd_ieee()
1541 scsi_bufflen(scmd)); _base_build_sg_scmd_ieee()
2267 * @scmd: pointer to scsi command object
2273 struct scsi_cmnd *scmd) mpt3sas_base_get_smid_scsiio()
2289 request->scmd = scmd; mpt3sas_base_get_smid_scsiio()
2353 ioc->scsi_lookup[i].scmd = NULL; mpt3sas_base_free_smid()
5004 ioc->scsi_lookup[i].scmd = NULL; _base_make_ioc_operational()
1367 _base_build_sg_scmd(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, u16 smid) _base_build_sg_scmd() argument
1510 _base_build_sg_scmd_ieee(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd, u16 smid) _base_build_sg_scmd_ieee() argument
2272 mpt3sas_base_get_smid_scsiio(struct MPT3SAS_ADAPTER *ioc, u8 cb_idx, struct scsi_cmnd *scmd) mpt3sas_base_get_smid_scsiio() argument
H A Dmpt3sas_base.h642 * @scmd: scsi request pointer
649 struct scsi_cmnd *scmd; member in struct:scsiio_tracker
707 struct scsi_cmnd *scmd, u16 smid);
1208 struct scsi_cmnd *scmd);
1418 mpt3sas_setup_direct_io(struct MPT3SAS_ADAPTER *ioc, struct scsi_cmnd *scmd,
H A Dmpt3sas_ctl.c553 struct scsi_cmnd *scmd; _ctl_set_task_mid() local
573 scmd = ioc->scsi_lookup[i - 1].scmd; _ctl_set_task_mid()
574 if (scmd == NULL || scmd->device == NULL || _ctl_set_task_mid()
575 scmd->device->hostdata == NULL) _ctl_set_task_mid()
577 if (lun != scmd->device->lun) _ctl_set_task_mid()
579 priv_data = scmd->device->hostdata; _ctl_set_task_mid()
/linux-4.4.14/drivers/macintosh/
H A Dsmu.c288 int smu_queue_simple(struct smu_simple_cmd *scmd, u8 command, smu_queue_simple() argument
293 struct smu_cmd *cmd = &scmd->cmd; smu_queue_simple()
297 if (data_len > sizeof(scmd->buffer)) smu_queue_simple()
300 memset(scmd, 0, sizeof(*scmd)); smu_queue_simple()
303 cmd->data_buf = scmd->buffer; smu_queue_simple()
304 cmd->reply_len = sizeof(scmd->buffer); smu_queue_simple()
305 cmd->reply_buf = scmd->buffer; smu_queue_simple()
311 scmd->buffer[i] = (u8)va_arg(list, int); smu_queue_simple()
737 list_add_tail(&cmd->scmd.link, &smu->cmd_list); smu_i2c_complete_command()
758 cmd->scmd.reply_len = sizeof(cmd->pdata); smu_i2c_retry()
759 smu_queue_cmd(&cmd->scmd); smu_i2c_retry()
763 static void smu_i2c_low_completion(struct smu_cmd *scmd, void *misc) smu_i2c_low_completion() argument
769 cmd->stage, scmd->status, cmd->pdata[0], scmd->reply_len); smu_i2c_low_completion()
772 if (scmd->status < 0) smu_i2c_low_completion()
806 scmd->reply_buf = cmd->pdata; smu_i2c_low_completion()
807 scmd->reply_len = sizeof(cmd->pdata); smu_i2c_low_completion()
808 scmd->data_buf = cmd->pdata; smu_i2c_low_completion()
809 scmd->data_len = 1; smu_i2c_low_completion()
813 smu_queue_cmd(scmd); smu_i2c_low_completion()
824 /* Fill most fields of scmd */ smu_queue_i2c()
825 cmd->scmd.cmd = SMU_CMD_I2C_COMMAND; smu_queue_i2c()
826 cmd->scmd.done = smu_i2c_low_completion; smu_queue_i2c()
827 cmd->scmd.misc = cmd; smu_queue_i2c()
828 cmd->scmd.reply_buf = cmd->pdata; smu_queue_i2c()
829 cmd->scmd.reply_len = sizeof(cmd->pdata); smu_queue_i2c()
830 cmd->scmd.data_buf = (u8 *)(char *)&cmd->info; smu_queue_i2c()
831 cmd->scmd.status = 1; smu_queue_i2c()
862 cmd->scmd.data_len = 9; smu_queue_i2c()
866 cmd->scmd.data_len = 9 + cmd->info.datalen; smu_queue_i2c()
882 list_add_tail(&cmd->scmd.link, &smu->cmd_list); smu_queue_i2c()
/linux-4.4.14/drivers/ata/
H A Dlibata-scsi.c775 struct scsi_cmnd *scmd = qc->scsicmd; ata_qc_set_pc_nbytes() local
777 qc->extrabytes = scmd->request->extra_len; ata_qc_set_pc_nbytes()
778 qc->nbytes = scsi_bufflen(scmd) + qc->extrabytes; ata_qc_set_pc_nbytes()
1343 struct scsi_cmnd *scmd = qc->scsicmd; ata_scsi_start_stop_xlat() local
1345 const u8 *cdb = scmd->cmnd; ata_scsi_start_stop_xlat()
1347 if (scmd->cmd_len < 5) ata_scsi_start_stop_xlat()
1404 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x24, 0x0); ata_scsi_start_stop_xlat()
1408 scmd->result = SAM_STAT_GOOD; ata_scsi_start_stop_xlat()
1549 struct scsi_cmnd *scmd = qc->scsicmd; ata_scsi_verify_xlat() local
1553 const u8 *cdb = scmd->cmnd; ata_scsi_verify_xlat()
1561 if (scmd->cmd_len < 10) ata_scsi_verify_xlat()
1565 if (scmd->cmd_len < 16) ata_scsi_verify_xlat()
1643 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x24, 0x0); ata_scsi_verify_xlat()
1648 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x21, 0x0); ata_scsi_verify_xlat()
1653 scmd->result = SAM_STAT_GOOD; ata_scsi_verify_xlat()
1677 struct scsi_cmnd *scmd = qc->scsicmd; ata_scsi_rw_xlat() local
1678 const u8 *cdb = scmd->cmnd; ata_scsi_rw_xlat()
1691 if (unlikely(scmd->cmd_len < 10)) ata_scsi_rw_xlat()
1699 if (unlikely(scmd->cmd_len < 6)) ata_scsi_rw_xlat()
1711 if (unlikely(scmd->cmd_len < 16)) ata_scsi_rw_xlat()
1734 qc->nbytes = n_block * scmd->device->sector_size; ata_scsi_rw_xlat()
1745 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x24, 0x0); ata_scsi_rw_xlat()
1750 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x21, 0x0); ata_scsi_rw_xlat()
1755 scmd->result = SAM_STAT_GOOD; ata_scsi_rw_xlat()
2750 struct scsi_cmnd *scmd = qc->scsicmd; atapi_xlat() local
2752 int nodata = (scmd->sc_data_direction == DMA_NONE); atapi_xlat()
2757 memcpy(qc->cdb, scmd->cmnd, scmd->cmd_len); atapi_xlat()
2762 if (scmd->sc_data_direction == DMA_TO_DEVICE) { atapi_xlat()
2821 (scmd->sc_data_direction != DMA_TO_DEVICE)) atapi_xlat()
2942 struct scsi_cmnd *scmd = qc->scsicmd; ata_scsi_pass_thru() local
2944 const u8 *cdb = scmd->cmnd; ata_scsi_pass_thru()
3013 qc->sect_size = scsi_bufflen(scmd); ata_scsi_pass_thru()
3047 qc->sect_size = scmd->device->sector_size; ata_scsi_pass_thru()
3061 if (scmd->sc_data_direction == DMA_TO_DEVICE) ata_scsi_pass_thru()
3125 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x24, 0x00); ata_scsi_pass_thru()
3133 struct scsi_cmnd *scmd = qc->scsicmd; ata_scsi_write_same_xlat() local
3135 const u8 *cdb = scmd->cmnd; ata_scsi_write_same_xlat()
3145 if (unlikely(scmd->cmd_len < 16)) ata_scsi_write_same_xlat()
3157 if (!scsi_sg_count(scmd)) ata_scsi_write_same_xlat()
3160 buf = page_address(sg_page(scsi_sglist(scmd))); ata_scsi_write_same_xlat()
3190 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x24, 0x00); ata_scsi_write_same_xlat()
3254 struct scsi_cmnd *scmd = qc->scsicmd; ata_scsi_mode_select_xlat() local
3255 const u8 *cdb = scmd->cmnd; ata_scsi_mode_select_xlat()
3265 if (scmd->cmd_len < 5) ata_scsi_mode_select_xlat()
3271 if (scmd->cmd_len < 9) ata_scsi_mode_select_xlat()
3283 if (!scsi_sg_count(scmd) || scsi_sglist(scmd)->length < len) ata_scsi_mode_select_xlat()
3286 p = page_address(sg_page(scsi_sglist(scmd))); ata_scsi_mode_select_xlat()
3359 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x24, 0x0); ata_scsi_mode_select_xlat()
3364 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x26, 0x0); ata_scsi_mode_select_xlat()
3369 ata_scsi_set_sense(scmd, ILLEGAL_REQUEST, 0x1a, 0x0); ata_scsi_mode_select_xlat()
3373 scmd->result = SAM_STAT_GOOD; ata_scsi_mode_select_xlat()
3453 static inline int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, __ata_scsi_queuecmd() argument
3456 u8 scsi_op = scmd->cmnd[0]; __ata_scsi_queuecmd()
3461 if (unlikely(!scmd->cmd_len || scmd->cmd_len > dev->cdb_len)) __ata_scsi_queuecmd()
3466 if (unlikely(!scmd->cmd_len)) __ata_scsi_queuecmd()
3473 if (unlikely(len > scmd->cmd_len || len > dev->cdb_len)) __ata_scsi_queuecmd()
3479 if (unlikely(scmd->cmd_len > 16)) __ata_scsi_queuecmd()
3487 rc = ata_scsi_translate(dev, scmd, xlat_func); __ata_scsi_queuecmd()
3489 ata_scsi_simulate(dev, scmd); __ata_scsi_queuecmd()
3495 scmd->cmd_len, scsi_op, dev->cdb_len); __ata_scsi_queuecmd()
3496 scmd->result = DID_ERROR << 16; __ata_scsi_queuecmd()
3497 scmd->scsi_done(scmd); __ata_scsi_queuecmd()
H A Dlibata-eh.c608 /* finish or retry handled scmd's and clean up */ ata_scsi_error()
644 * completions are honored. A scmd is determined to have ata_scsi_cmd_error_handler()
648 struct scsi_cmnd *scmd, *tmp; ata_scsi_cmd_error_handler() local
665 list_for_each_entry_safe(scmd, tmp, eh_work_q, eh_entry) { list_for_each_entry_safe()
671 qc->scsicmd == scmd) list_for_each_entry_safe()
676 /* the scmd has an associated qc */ list_for_each_entry_safe()
688 scmd->retries = scmd->allowed; list_for_each_entry_safe()
689 scsi_eh_finish_cmd(scmd, &ap->eh_done_q); list_for_each_entry_safe()
1285 static void ata_eh_scsidone(struct scsi_cmnd *scmd) ata_eh_scsidone() argument
1293 struct scsi_cmnd *scmd = qc->scsicmd; __ata_eh_qc_complete() local
1302 scsi_eh_finish_cmd(scmd, &ap->eh_done_q); __ata_eh_qc_complete()
1314 struct scsi_cmnd *scmd = qc->scsicmd; ata_eh_qc_complete() local
1315 scmd->retries = scmd->allowed; ata_eh_qc_complete()
1326 * SCSI midlayer limits the number of retries to scmd->allowed.
1327 * scmd->allowed is incremented for commands which get retried
1332 struct scsi_cmnd *scmd = qc->scsicmd; ata_eh_qc_retry() local
1334 scmd->allowed++; ata_eh_qc_retry()
H A Dsata_mv.c1870 struct scsi_cmnd *scmd = qc->scsicmd; mv_check_atapi_dma() local
1872 if (scmd) { mv_check_atapi_dma()
1873 switch (scmd->cmnd[0]) { mv_check_atapi_dma()
/linux-4.4.14/drivers/scsi/megaraid/
H A Dmegaraid_sas_base.c176 struct scsi_cmnd *scmd);
197 struct scsi_cmnd *scmd);
258 cmd->scmd = NULL; megasas_return_cmd()
1490 * @scmd: SCSI command
1542 if (!cmd->scmd) megasas_dump_pending_frames()
1545 if (megasas_cmd_type(cmd->scmd) == READ_WRITE_LDIO) { megasas_dump_pending_frames()
1590 struct scsi_cmnd *scmd) megasas_build_and_issue_cmd()
1602 if (megasas_cmd_type(scmd) == READ_WRITE_LDIO) megasas_build_and_issue_cmd()
1603 frame_count = megasas_build_ldio(instance, scmd, cmd); megasas_build_and_issue_cmd()
1605 frame_count = megasas_build_dcdb(instance, scmd, cmd); megasas_build_and_issue_cmd()
1610 cmd->scmd = scmd; megasas_build_and_issue_cmd()
1611 scmd->SCp.ptr = (char *)cmd; megasas_build_and_issue_cmd()
1630 * @scmd: SCSI command to be queued
1634 megasas_queue_command(struct Scsi_Host *shost, struct scsi_cmnd *scmd) megasas_queue_command() argument
1640 scmd->device->host->hostdata; megasas_queue_command()
1643 scmd->result = DID_NO_CONNECT << 16; megasas_queue_command()
1644 scmd->scsi_done(scmd); megasas_queue_command()
1655 if (megasas_check_mpio_paths(instance, scmd) == megasas_queue_command()
1661 scmd->result = DID_NO_CONNECT << 16; megasas_queue_command()
1662 scmd->scsi_done(scmd); megasas_queue_command()
1669 scmd->result = DID_NO_CONNECT << 16; megasas_queue_command()
1670 scmd->scsi_done(scmd); megasas_queue_command()
1681 scmd->result = 0; megasas_queue_command()
1683 if (MEGASAS_IS_LOGICAL(scmd) && megasas_queue_command()
1684 (scmd->device->id >= instance->fw_supported_vd_count || megasas_queue_command()
1685 scmd->device->lun)) { megasas_queue_command()
1686 scmd->result = DID_BAD_TARGET << 16; megasas_queue_command()
1690 switch (scmd->cmnd[0]) { megasas_queue_command()
1696 scmd->result = DID_OK << 16; megasas_queue_command()
1702 if (instance->instancet->build_and_issue_cmd(instance, scmd)) { megasas_queue_command()
1710 scmd->scsi_done(scmd); megasas_queue_command()
2421 if (reset_cmd->scmd) { megasas_wait_for_outstanding()
2422 reset_cmd->scmd->result = DID_RESET << 16; megasas_wait_for_outstanding()
2425 reset_cmd->scmd->cmnd[0]); megasas_wait_for_outstanding()
2427 reset_cmd->scmd->scsi_done(reset_cmd->scmd); megasas_wait_for_outstanding()
2534 * @scmd: Mid-layer SCSI command
2540 static int megasas_generic_reset(struct scsi_cmnd *scmd) megasas_generic_reset() argument
2545 instance = (struct megasas_instance *)scmd->device->host->hostdata; megasas_generic_reset()
2547 scmd_printk(KERN_NOTICE, scmd, "megasas: RESET cmd=%x retries=%x\n", megasas_generic_reset()
2548 scmd->cmnd[0], scmd->retries); megasas_generic_reset()
2566 * @scmd: scsi cmnd
2572 blk_eh_timer_return megasas_reset_timer(struct scsi_cmnd *scmd) megasas_reset_timer() argument
2577 if (time_after(jiffies, scmd->jiffies_at_alloc + megasas_reset_timer()
2582 instance = (struct megasas_instance *)scmd->device->host->hostdata; megasas_reset_timer()
2599 static int megasas_reset_device(struct scsi_cmnd *scmd) megasas_reset_device() argument
2604 return megasas_generic_reset(scmd); megasas_reset_device()
2610 static int megasas_reset_bus_host(struct scsi_cmnd *scmd) megasas_reset_bus_host() argument
2615 instance = (struct megasas_instance *)scmd->device->host->hostdata; megasas_reset_bus_host()
2621 ret = megasas_reset_fusion(scmd->device->host, 1); megasas_reset_bus_host()
2623 ret = megasas_generic_reset(scmd); megasas_reset_bus_host()
2953 if (cmd->scmd) megasas_complete_cmd()
2954 cmd->scmd->SCp.ptr = NULL; megasas_complete_cmd()
2985 cmd->scmd->result = alt_status << 16; megasas_complete_cmd()
2993 scsi_dma_unmap(cmd->scmd); megasas_complete_cmd()
2994 cmd->scmd->scsi_done(cmd->scmd); megasas_complete_cmd()
3003 cmd->scmd->result = DID_OK << 16; megasas_complete_cmd()
3008 cmd->scmd->result = megasas_complete_cmd()
3014 cmd->scmd->result = (DID_OK << 16) | hdr->scsi_status; megasas_complete_cmd()
3017 memset(cmd->scmd->sense_buffer, 0, megasas_complete_cmd()
3019 memcpy(cmd->scmd->sense_buffer, cmd->sense, megasas_complete_cmd()
3022 cmd->scmd->result |= DRIVER_SENSE << 24; megasas_complete_cmd()
3029 cmd->scmd->result = DID_BAD_TARGET << 16; megasas_complete_cmd()
3035 cmd->scmd->result = DID_ERROR << 16; megasas_complete_cmd()
3041 scsi_dma_unmap(cmd->scmd); megasas_complete_cmd()
3042 cmd->scmd->scsi_done(cmd->scmd); megasas_complete_cmd()
3163 if (cmd->sync_cmd || cmd->scmd) { megasas_issue_pending_cmds_again()
3166 cmd, cmd->scmd, cmd->sync_cmd); megasas_issue_pending_cmds_again()
3174 cmd, cmd->scmd, cmd->sync_cmd); megasas_issue_pending_cmds_again()
3183 if (cmd->scmd) { megasas_issue_pending_cmds_again()
3194 } else if (cmd->scmd) { megasas_issue_pending_cmds_again()
3197 cmd, cmd->scmd->cmnd[0]); megasas_issue_pending_cmds_again()
3250 if (cmd->sync_cmd == 1 || cmd->scmd) { megasas_internal_reset_defer_cmds()
3253 defer_index, cmd, cmd->sync_cmd, cmd->scmd); megasas_internal_reset_defer_cmds()
3259 cmd, cmd->sync_cmd, cmd->scmd); megasas_internal_reset_defer_cmds()
3837 cmd->scmd = NULL; megasas_alloc_cmds()
1589 megasas_build_and_issue_cmd(struct megasas_instance *instance, struct scsi_cmnd *scmd) megasas_build_and_issue_cmd() argument
H A Dmegaraid_sas_fusion.c180 cmd->scmd = NULL; megasas_return_cmd_fusion()
508 cmd->scmd = NULL; megasas_alloc_cmds_fusion()
1247 cmd->scmd->result = DID_OK << 16; map_cmd_status()
1252 cmd->scmd->result = (DID_ERROR << 16) | ext_status; map_cmd_status()
1257 cmd->scmd->result = (DID_OK << 16) | ext_status; map_cmd_status()
1259 memset(cmd->scmd->sense_buffer, 0, map_cmd_status()
1261 memcpy(cmd->scmd->sense_buffer, cmd->sense, map_cmd_status()
1263 cmd->scmd->result |= DRIVER_SENSE << 24; map_cmd_status()
1269 cmd->scmd->result = DID_BAD_TARGET << 16; map_cmd_status()
1272 cmd->scmd->result = DID_IMM_RETRY << 16; map_cmd_status()
1276 cmd->scmd->result = DID_ERROR << 16; map_cmd_status()
1730 struct scsi_cmnd *scmd, struct megasas_cmd_fusion *cmd) megasas_build_ld_nonrw_fusion()
1745 device_id = MEGASAS_DEV_INDEX(scmd); megasas_build_ld_nonrw_fusion()
1746 pd_index = MEGASAS_PD_INDEX(scmd); megasas_build_ld_nonrw_fusion()
1748 io_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); megasas_build_ld_nonrw_fusion()
1772 io_request->LUN[1] = scmd->device->lun; megasas_build_ld_nonrw_fusion()
1774 cpu_to_le16 (scmd->request->timeout / HZ); megasas_build_ld_nonrw_fusion()
1818 struct scsi_cmnd *scmd, struct megasas_cmd_fusion *cmd, u8 fp_possible) megasas_build_syspd_fusion()
1831 device_id = MEGASAS_DEV_INDEX(scmd); megasas_build_syspd_fusion()
1832 pd_index = MEGASAS_PD_INDEX(scmd); megasas_build_syspd_fusion()
1833 os_timeout_value = scmd->request->timeout / HZ; megasas_build_syspd_fusion()
1841 io_request->DataLength = cpu_to_le32(scsi_bufflen(scmd)); megasas_build_syspd_fusion()
1842 io_request->LUN[1] = scmd->device->lun; megasas_build_syspd_fusion()
1888 timeout_limit = (scmd->device->type == TYPE_DISK) ? megasas_build_syspd_fusion()
1996 cmd->scmd = scp; megasas_build_io_fusion()
2025 * @scmd: pointer to scsi cmd from OS
2029 struct scsi_cmnd *scmd) megasas_build_and_issue_cmd_fusion()
2038 cmd = megasas_get_cmd_fusion(instance, scmd->request->tag); megasas_build_and_issue_cmd_fusion()
2049 if (megasas_build_io_fusion(instance, scmd, cmd)) { megasas_build_and_issue_cmd_fusion()
2128 if (cmd_fusion->scmd) complete_cmd_fusion()
2129 cmd_fusion->scmd->SCp.ptr = NULL; complete_cmd_fusion()
2131 scmd_local = cmd_fusion->scmd; complete_cmd_fusion()
2140 if (cmd_fusion->scmd->SCp.Status & complete_cmd_fusion()
2143 cmd_fusion->scmd->SCp.Status &= complete_cmd_fusion()
2710 struct scsi_cmnd *scmd) megasas_check_mpio_paths()
2723 == scmd->device->id)) { megasas_check_mpio_paths()
2811 scmd_local = cmd_fusion->scmd; megasas_reset_fusion()
2812 if (cmd_fusion->scmd) { megasas_reset_fusion()
1729 megasas_build_ld_nonrw_fusion(struct megasas_instance *instance, struct scsi_cmnd *scmd, struct megasas_cmd_fusion *cmd) megasas_build_ld_nonrw_fusion() argument
1817 megasas_build_syspd_fusion(struct megasas_instance *instance, struct scsi_cmnd *scmd, struct megasas_cmd_fusion *cmd, u8 fp_possible) megasas_build_syspd_fusion() argument
2028 megasas_build_and_issue_cmd_fusion(struct megasas_instance *instance, struct scsi_cmnd *scmd) megasas_build_and_issue_cmd_fusion() argument
2709 megasas_check_mpio_paths(struct megasas_instance *instance, struct scsi_cmnd *scmd) megasas_check_mpio_paths() argument
H A Dmegaraid_sas_fusion.h684 struct scsi_cmnd *scmd; member in struct:megasas_cmd_fusion
H A Dmegaraid_sas.h1949 struct scsi_cmnd *scmd; member in struct:megasas_cmd
/linux-4.4.14/arch/powerpc/include/asm/
H A Dsmu.h426 extern int smu_queue_simple(struct smu_simple_cmd *scmd, u8 command,
444 static inline void smu_spinwait_simple(struct smu_simple_cmd *scmd) smu_spinwait_simple() argument
446 smu_spinwait_cmd(&scmd->cmd); smu_spinwait_simple()
509 struct smu_cmd scmd; member in struct:smu_i2c_cmd
/linux-4.4.14/drivers/scsi/isci/
H A Drequest.c300 struct scsi_cmnd *scmd = ireq->ttype_ptr.io_task_ptr->uldd_task; scu_ssp_ireq_dif_insert() local
301 u8 blk_sz = scu_bg_blk_size(scmd->device); scu_ssp_ireq_dif_insert()
310 scmd->device->sector_size); scu_ssp_ireq_dif_insert()
321 tc->UD_bytes_immed_val = scmd->device->sector_size; scu_ssp_ireq_dif_insert()
329 tc->bgc_blk_sz = scmd->device->sector_size; scu_ssp_ireq_dif_insert()
347 tc->ref_tag_seed_gen = scsi_get_lba(scmd) & 0xffffffff; scu_ssp_ireq_dif_insert()
355 struct scsi_cmnd *scmd = ireq->ttype_ptr.io_task_ptr->uldd_task; scu_ssp_ireq_dif_strip() local
356 u8 blk_sz = scu_bg_blk_size(scmd->device); scu_ssp_ireq_dif_strip()
365 scmd->device->sector_size); scu_ssp_ireq_dif_strip()
375 tc->ref_tag_seed_verify = scsi_get_lba(scmd) & 0xffffffff; scu_ssp_ireq_dif_strip()
380 tc->UD_bytes_immed_val = scmd->device->sector_size; scu_ssp_ireq_dif_strip()
388 tc->bgc_blk_sz = scmd->device->sector_size; scu_ssp_ireq_dif_strip()
424 struct scsi_cmnd *scmd = sas_task->uldd_task; scu_ssp_io_request_construct_task_context() local
425 u8 prot_type = scsi_get_prot_type(scmd); scu_ssp_io_request_construct_task_context()
426 u8 prot_op = scsi_get_prot_op(scmd); scu_ssp_io_request_construct_task_context()
/linux-4.4.14/drivers/message/fusion/
H A Dmptscsih.c86 static void mptscsih_set_scsi_lookup(MPT_ADAPTER *ioc, int i, struct scsi_cmnd *scmd);
87 static int SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *scmd);
2465 * mptscsih_get_scsi_lookup - retrieves scmd entry
2475 struct scsi_cmnd *scmd; mptscsih_get_scsi_lookup() local
2478 scmd = ioc->ScsiLookup[i]; mptscsih_get_scsi_lookup()
2481 return scmd; mptscsih_get_scsi_lookup()
2486 * mptscsih_getclear_scsi_lookup - retrieves and clears scmd entry from ScsiLookup[] array list
2497 struct scsi_cmnd *scmd; mptscsih_getclear_scsi_lookup() local
2500 scmd = ioc->ScsiLookup[i]; mptscsih_getclear_scsi_lookup()
2504 return scmd; mptscsih_getclear_scsi_lookup()
2508 * mptscsih_set_scsi_lookup - write a scmd entry into the ScsiLookup[] array list
2512 * @scmd: scsi_cmnd pointer
2516 mptscsih_set_scsi_lookup(MPT_ADAPTER *ioc, int i, struct scsi_cmnd *scmd) mptscsih_set_scsi_lookup() argument
2521 ioc->ScsiLookup[i] = scmd; mptscsih_set_scsi_lookup()
2526 * SCPNT_TO_LOOKUP_IDX - searches for a given scmd in the ScsiLookup[] array list
/linux-4.4.14/drivers/scsi/qla2xxx/
H A Dqla_def.h398 struct srb_cmd scmd; member in union:srb::__anon9987
404 #define GET_CMD_SP(sp) (sp->u.scmd.cmd)
405 #define SET_CMD_SP(sp, cmd) (sp->u.scmd.cmd = cmd)
406 #define GET_CMD_CTX_SP(sp) (sp->u.scmd.ctx)
409 (sp->u.scmd.request_sense_length)
411 (sp->u.scmd.request_sense_length = len)
413 (sp->u.scmd.request_sense_ptr)
415 (sp->u.scmd.request_sense_ptr = ptr)
417 (sp->u.scmd.fw_sense_length)
419 (sp->u.scmd.fw_sense_length = len)
H A Dqla_iocb.c980 sp->u.scmd.ctx)->dsd_list); qla24xx_walk_and_build_sglist_no_difb()
1080 sp->u.scmd.ctx)->dsd_list); for_each_sg()
1172 sp->u.scmd.ctx)->dsd_list); for_each_sg()
1263 crc_ctx_pkt = sp->u.scmd.ctx = qla24xx_build_scsi_crc_2_iocbs()
2339 ctx = sp->u.scmd.ctx = qla82xx_start_scsi()
2537 if (sp->u.scmd.ctx) { qla82xx_start_scsi()
2538 mempool_free(sp->u.scmd.ctx, ha->ctx_mempool); qla82xx_start_scsi()
2539 sp->u.scmd.ctx = NULL; qla82xx_start_scsi()
H A Dqla_nx.c3675 if ((!sp->u.scmd.ctx || qla82xx_chip_reset_cleanup()
H A Dqla_os.c753 sp->u.scmd.cmd = cmd; qla2xxx_queuecommand()
/linux-4.4.14/drivers/scsi/ibmvscsi/
H A Dibmvfc.c1302 * @scmd: scsi command struct
1306 static void ibmvfc_map_sg_list(struct scsi_cmnd *scmd, int nseg, ibmvfc_map_sg_list() argument
1312 scsi_for_each_sg(scmd, sg, nseg, i) { scsi_for_each_sg()
1321 * @scmd: Scsi_Cmnd with the scatterlist
1329 static int ibmvfc_map_sg_data(struct scsi_cmnd *scmd, ibmvfc_map_sg_data() argument
1338 sg_mapped = scsi_dma_map(scmd); ibmvfc_map_sg_data()
1344 scmd_printk(KERN_ERR, scmd, "Failed to map DMA buffer for command\n"); ibmvfc_map_sg_data()
1348 if (scmd->sc_data_direction == DMA_TO_DEVICE) { ibmvfc_map_sg_data()
1357 ibmvfc_map_sg_list(scmd, sg_mapped, data); ibmvfc_map_sg_data()
1368 scsi_dma_unmap(scmd); ibmvfc_map_sg_data()
1370 scmd_printk(KERN_ERR, scmd, "Can't allocate memory for scatterlist\n"); ibmvfc_map_sg_data()
1375 ibmvfc_map_sg_list(scmd, sg_mapped, evt->ext_list); ibmvfc_map_sg_data()
/linux-4.4.14/drivers/net/wireless/iwlwifi/mvm/
H A Dutils.c874 struct iwl_statistics_cmd scmd = { iwl_mvm_request_statistics() local
879 .len[0] = sizeof(scmd), iwl_mvm_request_statistics()
880 .data[0] = &scmd, iwl_mvm_request_statistics()

Completed in 3293 milliseconds