/linux-4.4.14/drivers/scsi/ |
H A D | scsi_error.c | 49 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 D | sd_dif.c | 114 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 D | mvumi.c | 198 * @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 D | scsi_logging.c | 72 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 D | sd.h | 117 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 D | scsi_priv.h | 24 #define SCSI_SENSE_VALID(scmd) \ 25 (((scmd)->sense_buffer[0] & 0x70) == 0x70) 80 int scsi_noretry_cmd(struct scsi_cmnd *scmd);
|
H A D | sd.c | 596 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 D | 53c700.h | 27 #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 D | st.c | 3116 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 D | scsi_transport_srp.c | 623 * @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 D | osst.c | 2887 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 D | mvumi.h | 266 struct scsi_cmnd *scmd; member in struct:mvumi_cmd
|
H A D | pmcraid.c | 3059 * @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 D | hpsa.c | 241 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 D | megaraid.c | 366 * @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 D | scsi_debug.c | 2362 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 D | ips.c | 320 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 D | scsi.c | 495 "Send: scmd 0x%p\n", cmd); scsi_log_send()
|
H A D | scsi_transport_fc.c | 2059 * @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 D | scsi_eh.h | 11 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 D | scsi_cmnd.h | 56 /* 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 D | scsi_device.h | 230 #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 D | zfcp_dbf.h | 314 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 D | zfcp_scsi.c | 666 * @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 D | mpt3sas_scsih.c | 1060 * _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 D | mpt3sas_warpdrive.c | 268 * 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 D | mpt3sas_base.c | 1357 * @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 D | mpt3sas_base.h | 642 * @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 D | mpt3sas_ctl.c | 553 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 D | smu.c | 288 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 D | libata-scsi.c | 775 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 D | libata-eh.c | 608 /* 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 D | sata_mv.c | 1870 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 D | megaraid_sas_base.c | 176 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 D | megaraid_sas_fusion.c | 180 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 D | megaraid_sas_fusion.h | 684 struct scsi_cmnd *scmd; member in struct:megasas_cmd_fusion
|
H A D | megaraid_sas.h | 1949 struct scsi_cmnd *scmd; member in struct:megasas_cmd
|
/linux-4.4.14/arch/powerpc/include/asm/ |
H A D | smu.h | 426 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 D | request.c | 300 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 D | mptscsih.c | 86 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 D | qla_def.h | 398 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 D | qla_iocb.c | 980 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 D | qla_nx.c | 3675 if ((!sp->u.scmd.ctx || qla82xx_chip_reset_cleanup()
|
H A D | qla_os.c | 753 sp->u.scmd.cmd = cmd; qla2xxx_queuecommand()
|
/linux-4.4.14/drivers/scsi/ibmvscsi/ |
H A D | ibmvfc.c | 1302 * @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 D | utils.c | 874 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()
|