Lines Matching refs:sc
96 struct scsi_cmnd *sc; member
209 if (s->sc->sc_data_direction == DMA_NONE) in scsifront_gnttab_done()
227 struct scsi_cmnd *sc; in scsifront_cdb_cmd_done() local
232 sc = info->shadow[id]->sc; in scsifront_cdb_cmd_done()
234 BUG_ON(sc == NULL); in scsifront_cdb_cmd_done()
239 sc->result = ring_rsp->rslt; in scsifront_cdb_cmd_done()
240 scsi_set_resid(sc, ring_rsp->residual_len); in scsifront_cdb_cmd_done()
246 memcpy(sc->sense_buffer, ring_rsp->sense_buffer, sense_len); in scsifront_cdb_cmd_done()
248 sc->scsi_done(sc); in scsifront_cdb_cmd_done()
368 struct scsi_cmnd *sc, in map_data_for_request() argument
375 int grant_ro = (sc->sc_data_direction == DMA_TO_DEVICE); in map_data_for_request()
377 unsigned int data_len = scsi_bufflen(sc); in map_data_for_request()
383 if (sc->sc_data_direction == DMA_NONE || !data_len) in map_data_for_request()
386 scsi_for_each_sg(sc, sg, scsi_sg_count(sc), i) in map_data_for_request()
439 scsi_for_each_sg(sc, sg, scsi_sg_count(sc), i) { in map_data_for_request()
485 struct vscsifrnt_info *info, struct scsi_cmnd *sc, in scsifront_command2ring() argument
499 ring_req->id = sc->device->id; in scsifront_command2ring()
500 ring_req->lun = sc->device->lun; in scsifront_command2ring()
501 ring_req->channel = sc->device->channel; in scsifront_command2ring()
502 ring_req->cmd_len = sc->cmd_len; in scsifront_command2ring()
504 BUG_ON(sc->cmd_len > VSCSIIF_MAX_COMMAND_SIZE); in scsifront_command2ring()
506 memcpy(ring_req->cmnd, sc->cmnd, sc->cmd_len); in scsifront_command2ring()
508 ring_req->sc_data_direction = (uint8_t)sc->sc_data_direction; in scsifront_command2ring()
509 ring_req->timeout_per_command = sc->request->timeout / HZ; in scsifront_command2ring()
536 struct scsi_cmnd *sc) in scsifront_queuecommand() argument
540 struct vscsifrnt_shadow *shadow = scsi_cmd_priv(sc); in scsifront_queuecommand()
553 ring_req = scsifront_command2ring(info, sc, shadow); in scsifront_queuecommand()
557 sc->result = 0; in scsifront_queuecommand()
562 shadow->sc = sc; in scsifront_queuecommand()
565 err = map_data_for_request(info, sc, ring_req, shadow); in scsifront_queuecommand()
573 sc->result = DID_ERROR << 16; in scsifront_queuecommand()
574 sc->scsi_done(sc); in scsifront_queuecommand()
596 static int scsifront_action_handler(struct scsi_cmnd *sc, uint8_t act) in scsifront_action_handler() argument
598 struct Scsi_Host *host = sc->device->host; in scsifront_action_handler()
600 struct vscsifrnt_shadow *shadow, *s = scsi_cmd_priv(sc); in scsifront_action_handler()
612 ring_req = scsifront_command2ring(info, sc, shadow); in scsifront_action_handler()
664 static int scsifront_eh_abort_handler(struct scsi_cmnd *sc) in scsifront_eh_abort_handler() argument
667 return scsifront_action_handler(sc, VSCSIIF_ACT_SCSI_ABORT); in scsifront_eh_abort_handler()
670 static int scsifront_dev_reset_handler(struct scsi_cmnd *sc) in scsifront_dev_reset_handler() argument
673 return scsifront_action_handler(sc, VSCSIIF_ACT_SCSI_RESET); in scsifront_dev_reset_handler()