• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/hv/

Lines Matching refs:scmnd

72 static int storvsc_queuecommand(struct scsi_cmnd *scmnd,
76 static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd);
354 struct scsi_cmnd *scmnd = cmd_request->cmd;
356 (struct host_device_context *)scmnd->device->host->hostdata;
361 /* ASSERT(scmnd); */
362 /* ASSERT((unsigned long)scmnd->host_scribble == */
364 /* ASSERT(scmnd->scsi_done); */
370 copy_from_bounce_buffer(scsi_sglist(scmnd),
372 scsi_sg_count(scmnd));
377 scmnd->result = request->Status;
379 if (scmnd->result) {
380 if (scsi_normalize_sense(scmnd->sense_buffer,
386 scsi_set_resid(scmnd, request->DataBuffer.Length - request->BytesXfer);
388 scsi_done_fn = scmnd->scsi_done;
390 scmnd->host_scribble = NULL;
391 scmnd->scsi_done = NULL;
393 /* !!DO NOT MODIFY the scmnd after this call */
394 scsi_done_fn(scmnd);
596 static int storvsc_queuecommand(struct scsi_cmnd *scmnd,
601 (struct host_device_context *)scmnd->device->host->hostdata;
616 DPRINT_DBG(STORVSC_DRV, "scmnd %p dir %d, use_sg %d buf %p len %d "
617 "queue depth %d tagged %d", scmnd, scmnd->sc_data_direction,
618 scsi_sg_count(scmnd), scsi_sglist(scmnd),
619 scsi_bufflen(scmnd), scmnd->device->queue_depth,
620 scmnd->device->tagged_supported);
623 if (scmnd->host_scribble) {
624 /* ASSERT(scmnd->scsi_done != NULL); */
627 (struct storvsc_cmd_request *)scmnd->host_scribble;
628 DPRINT_INFO(STORVSC_DRV, "retrying scmnd %p cmd_request %p",
629 scmnd, cmd_request);
634 /* ASSERT(scmnd->scsi_done == NULL); */
635 /* ASSERT(scmnd->host_scribble == NULL); */
637 scmnd->scsi_done = done;
644 DPRINT_ERR(STORVSC_DRV, "scmnd (%p) - unable to allocate "
645 "storvsc_cmd_request...marking queue busy", scmnd);
646 scmnd->scsi_done = NULL;
653 cmd_request->cmd = scmnd;
655 scmnd->host_scribble = (unsigned char *)cmd_request;
665 switch (scmnd->sc_data_direction) {
678 request->Context = cmd_request;/* scmnd; */
680 /* request->PortId = scmnd->device->channel; */
682 request->Bus = scmnd->device->channel;
683 request->TargetId = scmnd->device->id;
684 request->LunId = scmnd->device->lun;
686 /* ASSERT(scmnd->cmd_len <= 16); */
687 request->CdbLen = scmnd->cmd_len;
688 request->Cdb = scmnd->cmnd;
690 request->SenseBuffer = scmnd->sense_buffer;
694 request->DataBuffer.Length = scsi_bufflen(scmnd);
695 if (scsi_sg_count(scmnd)) {
696 sgl = (struct scatterlist *)scsi_sglist(scmnd);
697 sg_count = scsi_sg_count(scmnd);
700 if (do_bounce_buffer(sgl, scsi_sg_count(scmnd)) != -1) {
702 "need to bounce buffer for this scmnd %p",
703 scmnd);
705 create_bounce_buffer(sgl, scsi_sg_count(scmnd),
706 scsi_bufflen(scmnd));
710 "this scmnd %p", scmnd);
712 scmnd->scsi_done = NULL;
713 scmnd->host_scribble = NULL;
721 ALIGN_UP(scsi_bufflen(scmnd), PAGE_SIZE) >>
725 scsi_sg_count(scmnd));
739 } else if (scsi_sglist(scmnd)) {
740 /* ASSERT(scsi_bufflen(scmnd) <= PAGE_SIZE); */
742 virt_to_phys(scsi_sglist(scmnd)) & (PAGE_SIZE-1);
744 virt_to_phys(scsi_sglist(scmnd)) >> PAGE_SHIFT;
754 "scmnd (%p) - queue FULL...marking queue busy",
755 scmnd);
758 copy_from_bounce_buffer(scsi_sglist(scmnd),
760 scsi_sg_count(scmnd));
767 scmnd->scsi_done = NULL;
768 scmnd->host_scribble = NULL;
825 static int storvsc_host_reset_handler(struct scsi_cmnd *scmnd)
829 (struct host_device_context *)scmnd->device->host->hostdata;
833 scmnd->device, &device_ctx->device_obj);
841 scmnd->device, &device_ctx->device_obj);