Lines Matching refs:shadow
115 struct vscsifrnt_shadow *shadow[VSCSIIF_MAX_REQS]; member
157 info->shadow[id] = NULL; in _scsifront_put_rqid()
206 struct vscsifrnt_shadow *s = info->shadow[id]; in scsifront_gnttab_done()
232 sc = info->shadow[id]->sc; in scsifront_cdb_cmd_done()
256 struct vscsifrnt_shadow *shadow = info->shadow[id]; in scsifront_sync_cmd_done() local
260 shadow->wait_reset = 1; in scsifront_sync_cmd_done()
261 switch (shadow->rslt_reset) { in scsifront_sync_cmd_done()
263 shadow->rslt_reset = ring_rsp->rslt; in scsifront_sync_cmd_done()
268 kfree(shadow); in scsifront_sync_cmd_done()
275 shadow->rslt_reset, id); in scsifront_sync_cmd_done()
280 wake_up(&shadow->wq_reset); in scsifront_sync_cmd_done()
291 if (info->shadow[ring_rsp->rqid]->act == VSCSIIF_ACT_SCSI_CDB) in scsifront_do_response()
370 struct vscsifrnt_shadow *shadow) in map_data_for_request() argument
396 shadow->sg = kcalloc(data_grants, in map_data_for_request()
398 if (!shadow->sg) in map_data_for_request()
401 seg = shadow->sg ? : ring_req->seg; in map_data_for_request()
406 kfree(shadow->sg); in map_data_for_request()
425 shadow->gref[ref_cnt] = ref; in map_data_for_request()
461 shadow->gref[ref_cnt] = ref; in map_data_for_request()
479 shadow->nr_grants = ref_cnt; in map_data_for_request()
486 struct vscsifrnt_shadow *shadow) in scsifront_command2ring() argument
490 memset(shadow, 0, sizeof(*shadow)); in scsifront_command2ring()
496 info->shadow[ring_req->rqid] = shadow; in scsifront_command2ring()
497 shadow->rqid = ring_req->rqid; in scsifront_command2ring()
540 struct vscsifrnt_shadow *shadow = scsi_cmd_priv(sc); in scsifront_queuecommand() local
553 ring_req = scsifront_command2ring(info, sc, shadow); in scsifront_queuecommand()
562 shadow->sc = sc; in scsifront_queuecommand()
563 shadow->act = VSCSIIF_ACT_SCSI_CDB; in scsifront_queuecommand()
565 err = map_data_for_request(info, sc, ring_req, shadow); in scsifront_queuecommand()
600 struct vscsifrnt_shadow *shadow, *s = scsi_cmd_priv(sc); in scsifront_action_handler() local
604 shadow = kmalloc(sizeof(*shadow), GFP_NOIO); in scsifront_action_handler()
605 if (!shadow) in scsifront_action_handler()
612 ring_req = scsifront_command2ring(info, sc, shadow); in scsifront_action_handler()
618 kfree(shadow); in scsifront_action_handler()
636 shadow->act = act; in scsifront_action_handler()
637 shadow->rslt_reset = RSLT_RESET_WAITING; in scsifront_action_handler()
638 init_waitqueue_head(&shadow->wq_reset); in scsifront_action_handler()
645 err = wait_event_interruptible(shadow->wq_reset, shadow->wait_reset); in scsifront_action_handler()
649 err = shadow->rslt_reset; in scsifront_action_handler()
650 scsifront_put_rqid(info, shadow->rqid); in scsifront_action_handler()
651 kfree(shadow); in scsifront_action_handler()
654 shadow->rslt_reset = RSLT_RESET_ERR; in scsifront_action_handler()