Lines Matching refs:scmnd
856 struct scsi_cmnd *scmnd, in storvsc_handle_error() argument
872 switch (scmnd->cmnd[0]) { in storvsc_handle_error()
875 set_host_byte(scmnd, DID_PASSTHROUGH); in storvsc_handle_error()
885 set_host_byte(scmnd, DID_TARGET_FAILURE); in storvsc_handle_error()
900 set_host_byte(scmnd, DID_REQUEUE); in storvsc_handle_error()
913 set_host_byte(scmnd, DID_TARGET_FAILURE); in storvsc_handle_error()
926 struct scsi_cmnd *scmnd = cmd_request->cmd; in storvsc_command_completion() local
927 struct hv_host_device *host_dev = shost_priv(scmnd->device->host); in storvsc_command_completion()
941 scmnd->result = vm_srb->scsi_status; in storvsc_command_completion()
943 if (scmnd->result) { in storvsc_command_completion()
944 if (scsi_normalize_sense(scmnd->sense_buffer, in storvsc_command_completion()
946 scsi_print_sense_hdr(scmnd->device, "storvsc", in storvsc_command_completion()
951 storvsc_handle_error(vm_srb, scmnd, host, sense_hdr.asc, in storvsc_command_completion()
954 scsi_set_resid(scmnd, in storvsc_command_completion()
958 scmnd->scsi_done(scmnd); in storvsc_command_completion()
1290 static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd) in storvsc_host_reset_handler() argument
1292 struct hv_host_device *host_dev = shost_priv(scmnd->device->host); in storvsc_host_reset_handler()
1346 static enum blk_eh_timer_return storvsc_eh_timed_out(struct scsi_cmnd *scmnd) in storvsc_eh_timed_out() argument
1351 static bool storvsc_scsi_cmd_ok(struct scsi_cmnd *scmnd) in storvsc_scsi_cmd_ok() argument
1354 u8 scsi_op = scmnd->cmnd[0]; in storvsc_scsi_cmd_ok()
1364 scmnd->result = ILLEGAL_REQUEST << 16; in storvsc_scsi_cmd_ok()
1373 static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) in storvsc_queuecommand() argument
1378 struct storvsc_cmd_request *cmd_request = scsi_cmd_priv(scmnd); in storvsc_queuecommand()
1397 if (!storvsc_scsi_cmd_ok(scmnd)) { in storvsc_queuecommand()
1398 scmnd->scsi_done(scmnd); in storvsc_queuecommand()
1404 cmd_request->cmd = scmnd; in storvsc_queuecommand()
1413 switch (scmnd->sc_data_direction) { in storvsc_queuecommand()
1432 scmnd->sc_data_direction); in storvsc_queuecommand()
1438 vm_srb->path_id = scmnd->device->channel; in storvsc_queuecommand()
1439 vm_srb->target_id = scmnd->device->id; in storvsc_queuecommand()
1440 vm_srb->lun = scmnd->device->lun; in storvsc_queuecommand()
1442 vm_srb->cdb_length = scmnd->cmd_len; in storvsc_queuecommand()
1444 memcpy(vm_srb->cdb, scmnd->cmnd, vm_srb->cdb_length); in storvsc_queuecommand()
1446 sgl = (struct scatterlist *)scsi_sglist(scmnd); in storvsc_queuecommand()
1447 sg_count = scsi_sg_count(scmnd); in storvsc_queuecommand()
1449 length = scsi_bufflen(scmnd); in storvsc_queuecommand()
1473 } else if (scsi_sglist(scmnd)) { in storvsc_queuecommand()
1476 virt_to_phys(scsi_sglist(scmnd)) & (PAGE_SIZE-1); in storvsc_queuecommand()
1478 virt_to_phys(scsi_sglist(scmnd)) >> PAGE_SHIFT; in storvsc_queuecommand()