qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hu Tao <hutao@cn.fujitsu.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v4 14/18] virtio-scsi: process control queue requests
Date: Fri, 24 Feb 2012 15:54:37 +0800	[thread overview]
Message-ID: <20120224075437.GA6937@localhost.localdomain> (raw)
In-Reply-To: <1329921236-23461-15-git-send-email-pbonzini@redhat.com>

On Wed, Feb 22, 2012 at 03:33:52PM +0100, Paolo Bonzini wrote:
> Reviewed-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  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

  reply	other threads:[~2012-02-24  7:54 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-22 14:33 [Qemu-devel] [PULL v4 00/18] virtio-scsi driver Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 01/18] dma-helpers: make QEMUSGList target independent Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 02/18] dma-helpers: add dma_buf_read and dma_buf_write Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 03/18] dma-helpers: add accounting wrappers Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 04/18] ahci: use new DMA helpers Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 05/18] scsi: pass residual amount to command_complete Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 06/18] scsi: add scatter/gather functionality Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 07/18] scsi-disk: enable " Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 08/18] scsi: add SCSIDevice vmstate definitions Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 09/18] scsi-generic: add migration support Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 10/18] scsi-disk: " Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 11/18] virtio-scsi: Add virtio-scsi stub device Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 12/18] virtio-scsi: Add basic request processing infrastructure Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 13/18] virtio-scsi: add basic SCSI bus operation Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 14/18] virtio-scsi: process control queue requests Paolo Bonzini
2012-02-24  7:54   ` Hu Tao [this message]
2012-02-24  8:56     ` Paolo Bonzini
2012-02-24 13:58     ` Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 15/18] virtio-scsi: add migration support Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 16/18] scsi: fix wrong return for target INQUIRY Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 17/18] scsi: fix searching for an empty id Paolo Bonzini
2012-02-22 14:33 ` [Qemu-devel] [PATCH v4 18/18] scsi-block: always use scsi_generic_ops for cache != none Paolo Bonzini
2012-02-24 16:34 ` [Qemu-devel] [PULL v4 00/18] virtio-scsi driver Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120224075437.GA6937@localhost.localdomain \
    --to=hutao@cn.fujitsu.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).