Lines Matching refs:shadow
114 struct vscsifrnt_shadow *shadow[VSCSIIF_MAX_REQS]; member
151 info->shadow[id] = NULL; in _scsifront_put_rqid()
200 struct vscsifrnt_shadow *s = info->shadow[id]; in scsifront_gnttab_done()
226 sc = info->shadow[id]->sc; in scsifront_cdb_cmd_done()
250 struct vscsifrnt_shadow *shadow = info->shadow[id]; in scsifront_sync_cmd_done() local
254 shadow->wait_reset = 1; in scsifront_sync_cmd_done()
255 switch (shadow->rslt_reset) { in scsifront_sync_cmd_done()
257 shadow->rslt_reset = ring_rsp->rslt; in scsifront_sync_cmd_done()
262 kfree(shadow); in scsifront_sync_cmd_done()
269 shadow->rslt_reset, id); in scsifront_sync_cmd_done()
274 wake_up(&shadow->wq_reset); in scsifront_sync_cmd_done()
298 if (info->shadow[ring_rsp->rqid]->act == VSCSIIF_ACT_SCSI_CDB) in scsifront_cmd_done()
334 struct vscsifrnt_shadow *shadow) in map_data_for_request() argument
361 shadow->sg = kcalloc(data_grants, in map_data_for_request()
363 if (!shadow->sg) in map_data_for_request()
366 seg = shadow->sg ? : ring_req->seg; in map_data_for_request()
371 kfree(shadow->sg); in map_data_for_request()
390 shadow->gref[ref_cnt] = ref; in map_data_for_request()
425 shadow->gref[ref_cnt] = ref; in map_data_for_request()
443 shadow->nr_grants = ref_cnt; in map_data_for_request()
450 struct vscsifrnt_shadow *shadow) in scsifront_command2ring() argument
454 memset(shadow, 0, sizeof(*shadow)); in scsifront_command2ring()
460 info->shadow[ring_req->rqid] = shadow; in scsifront_command2ring()
461 shadow->rqid = ring_req->rqid; in scsifront_command2ring()
483 struct vscsifrnt_shadow *shadow = scsi_cmd_priv(sc); in scsifront_queuecommand() local
492 ring_req = scsifront_command2ring(info, sc, shadow); in scsifront_queuecommand()
501 shadow->sc = sc; in scsifront_queuecommand()
502 shadow->act = VSCSIIF_ACT_SCSI_CDB; in scsifront_queuecommand()
504 err = map_data_for_request(info, sc, ring_req, shadow); in scsifront_queuecommand()
536 struct vscsifrnt_shadow *shadow, *s = scsi_cmd_priv(sc); in scsifront_action_handler() local
540 shadow = kmalloc(sizeof(*shadow), GFP_NOIO); in scsifront_action_handler()
541 if (!shadow) in scsifront_action_handler()
548 ring_req = scsifront_command2ring(info, sc, shadow); in scsifront_action_handler()
554 kfree(shadow); in scsifront_action_handler()
567 shadow->act = act; in scsifront_action_handler()
568 shadow->rslt_reset = RSLT_RESET_WAITING; in scsifront_action_handler()
569 init_waitqueue_head(&shadow->wq_reset); in scsifront_action_handler()
576 err = wait_event_interruptible(shadow->wq_reset, shadow->wait_reset); in scsifront_action_handler()
580 err = shadow->rslt_reset; in scsifront_action_handler()
581 scsifront_put_rqid(info, shadow->rqid); in scsifront_action_handler()
582 kfree(shadow); in scsifront_action_handler()
585 shadow->rslt_reset = RSLT_RESET_ERR; in scsifront_action_handler()