[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 14/18] virtio-scsi: process control queue req
From: |
Hu Tao |
Subject: |
Re: [Qemu-devel] [PATCH v4 14/18] virtio-scsi: process control queue requests |
Date: |
Fri, 24 Feb 2012 15:54:37 +0800 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Wed, Feb 22, 2012 at 03:33:52PM +0100, Paolo Bonzini wrote:
> Reviewed-by: Stefan Hajnoczi <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> hw/virtio-scsi.c | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++---
> 1 files changed, 126 insertions(+), 8 deletions(-)
>
> diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
> index f4eb8c7..380073a 100644
> --- a/hw/virtio-scsi.c
> +++ b/hw/virtio-scsi.c
> @@ -134,6 +134,7 @@ typedef struct {
> VirtQueue *cmd_vq;
> uint32_t sense_size;
> uint32_t cdb_size;
> + int resetting;
> } VirtIOSCSI;
>
> typedef struct VirtIOSCSIReq {
> @@ -236,15 +237,104 @@ static VirtIOSCSIReq *virtio_scsi_pop_req(VirtIOSCSI
> *s, VirtQueue *vq)
> return req;
> }
>
> -static void virtio_scsi_fail_ctrl_req(VirtIOSCSIReq *req)
> +static void virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq *req)
> {
> - if (req->req.tmf->type == VIRTIO_SCSI_T_TMF) {
> - req->resp.tmf->response = VIRTIO_SCSI_S_FAILURE;
> - } else {
> - req->resp.an->response = VIRTIO_SCSI_S_FAILURE;
> + SCSIDevice *d = virtio_scsi_device_find(s, req->req.cmd->lun);
should be req->req.tmf->lun here and elsewhere in this function?
diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c
index 380073a..1f3b851 100644
--- a/hw/virtio-scsi.c
+++ b/hw/virtio-scsi.c
@@ -239,7 +239,7 @@ static VirtIOSCSIReq *virtio_scsi_pop_req(VirtIOSCSI *s,
VirtQueue *vq)
static void virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq *req)
{
- SCSIDevice *d = virtio_scsi_device_find(s, req->req.cmd->lun);
+ SCSIDevice *d = virtio_scsi_device_find(s, req->req.tmf->lun);
SCSIRequest *r, *next;
DeviceState *qdev;
int target;
@@ -253,11 +253,11 @@ static void virtio_scsi_do_tmf(VirtIOSCSI *s,
VirtIOSCSIReq *req)
if (!d) {
goto fail;
}
- if (d->lun != virtio_scsi_get_lun(req->req.cmd->lun)) {
+ if (d->lun != virtio_scsi_get_lun(req->req.tmf->lun)) {
goto incorrect_lun;
}
QTAILQ_FOREACH_SAFE(r, &d->requests, next, next) {
- if (r->tag == req->req.cmd->tag) {
+ if (r->tag == req->req.tmf->tag) {
break;
}
}
@@ -277,7 +277,7 @@ static void virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq
*req)
if (!d) {
goto fail;
}
- if (d->lun != virtio_scsi_get_lun(req->req.cmd->lun)) {
+ if (d->lun != virtio_scsi_get_lun(req->req.tmf->lun)) {
goto incorrect_lun;
}
s->resetting++;
@@ -291,7 +291,7 @@ static void virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq
*req)
if (!d) {
goto fail;
}
- if (d->lun != virtio_scsi_get_lun(req->req.cmd->lun)) {
+ if (d->lun != virtio_scsi_get_lun(req->req.tmf->lun)) {
goto incorrect_lun;
}
QTAILQ_FOREACH_SAFE(r, &d->requests, next, next) {
@@ -310,7 +310,7 @@ static void virtio_scsi_do_tmf(VirtIOSCSI *s, VirtIOSCSIReq
*req)
break;
case VIRTIO_SCSI_T_TMF_I_T_NEXUS_RESET:
- target = req->req.cmd->lun[1];
+ target = req->req.tmf->lun[1];
s->resetting++;
QTAILQ_FOREACH(qdev, &s->bus.qbus.children, sibling) {
d = DO_UPCAST(SCSIDevice, qdev, qdev);
--
Thanks,
Hu Tao
- [Qemu-devel] [PATCH v4 01/18] dma-helpers: make QEMUSGList target independent, (continued)
- [Qemu-devel] [PATCH v4 01/18] dma-helpers: make QEMUSGList target independent, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 05/18] scsi: pass residual amount to command_complete, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 07/18] scsi-disk: enable scatter/gather functionality, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 06/18] scsi: add scatter/gather functionality, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 08/18] scsi: add SCSIDevice vmstate definitions, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 09/18] scsi-generic: add migration support, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 12/18] virtio-scsi: Add basic request processing infrastructure, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 10/18] scsi-disk: add migration support, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 11/18] virtio-scsi: Add virtio-scsi stub device, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 14/18] virtio-scsi: process control queue requests, Paolo Bonzini, 2012/02/22
- Re: [Qemu-devel] [PATCH v4 14/18] virtio-scsi: process control queue requests,
Hu Tao <=
- [Qemu-devel] [PATCH v4 15/18] virtio-scsi: add migration support, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 13/18] virtio-scsi: add basic SCSI bus operation, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 16/18] scsi: fix wrong return for target INQUIRY, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 17/18] scsi: fix searching for an empty id, Paolo Bonzini, 2012/02/22
- [Qemu-devel] [PATCH v4 18/18] scsi-block: always use scsi_generic_ops for cache != none, Paolo Bonzini, 2012/02/22
- Re: [Qemu-devel] [PULL v4 00/18] virtio-scsi driver, Anthony Liguori, 2012/02/24