On 09/18/14 16:58, Paolo Bonzini wrote: > The command direction according to the guest-passed buffers > is already stored in the VirtIOSCSIReq. We can use it instead > of computing it again from req->elem. > > Cc: Laszlo Ersek <ler...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > hw/scsi/virtio-scsi.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c > index f0d21a3..6953cbe 100644 > --- a/hw/scsi/virtio-scsi.c > +++ b/hw/scsi/virtio-scsi.c > @@ -430,13 +430,7 @@ static int virtio_scsi_parse_cdb(SCSIDevice *dev, > SCSICommand *cmd, > * host device passthrough. > */ > cmd->xfer = req->qsgl.size; > - if (cmd->xfer == 0) { > - cmd->mode = SCSI_XFER_NONE; > - } else if (iov_size(req->elem.in_sg, req->elem.in_num) > req->resp_size) > { > - cmd->mode = SCSI_XFER_FROM_DEV; > - } else { > - cmd->mode = SCSI_XFER_TO_DEV; > - } > + cmd->mode = req->mode; > return 0; > } > >
virtio_scsi_handle_cmd() [hw/scsi/virtio-scsi.c] virtio_scsi_parse_req() [hw/scsi/virtio-scsi.c] /* sets req->mode */ scsi_req_new() [hw/scsi/scsi-bus.c] scsi_block_parse_cdb() | scsi_generic_parse_cdb() [hw/scsi/scsi-disk.c | hw/scsi/scsi-generic.c] scsi_bus_parse_cdb() [hw/scsi/scsi-bus.c] virtio_scsi_parse_cdb() [hw/scsi/virtio-scsi.c] /* uses req->mode */ Reviewed-by: Laszlo Ersek <ler...@redhat.com>