From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59249) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XigbH-0003SQ-6C for qemu-devel@nongnu.org; Mon, 27 Oct 2014 05:28:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XigbC-0008Ow-Ci for qemu-devel@nongnu.org; Mon, 27 Oct 2014 05:28:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:37221) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XigbC-0008Os-5N for qemu-devel@nongnu.org; Mon, 27 Oct 2014 05:28:26 -0400 Message-ID: <544E1015.4080906@redhat.com> Date: Mon, 27 Oct 2014 10:27:49 +0100 From: Paolo Bonzini MIME-Version: 1.0 References: <1414205024-22263-1-git-send-email-wu.wubin@huawei.com> In-Reply-To: <1414205024-22263-1-git-send-email-wu.wubin@huawei.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] hw/scsi/virtio-scsi.c: fix the "type" use error in virtio_scsi_handle_ctrl List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Bin Wu , qemu-devel@nongnu.org On 10/25/2014 04:43 AM, Bin Wu wrote: > The local variable "type" in virtio_scsi_handle_ctl represents the tmf > command type from the guest and it has the same meaning as the > req->req.tmf.type. However, before the invoking of virtio_scsi_parse_req > the req->req.tmf.type doesn't has the correct value(just initialized to > zero). Therefore, we need to use the "type" variable to judge the case. > > Signed-off-by: Bin Wu > --- > hw/scsi/virtio-scsi.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c > index a1725b8..5742d39 100644 > --- a/hw/scsi/virtio-scsi.c > +++ b/hw/scsi/virtio-scsi.c > @@ -378,8 +378,8 @@ void virtio_scsi_handle_ctrl_req(VirtIOSCSI *s, VirtIOSCSIReq *req) > return; > } > > - virtio_tswap32s(vdev, &req->req.tmf.type); > - if (req->req.tmf.type == VIRTIO_SCSI_T_TMF) { > + virtio_tswap32s(vdev, &type); > + if (type == VIRTIO_SCSI_T_TMF) { > if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlTMFReq), > sizeof(VirtIOSCSICtrlTMFResp)) < 0) { > virtio_scsi_bad_req(); > @@ -387,8 +387,8 @@ void virtio_scsi_handle_ctrl_req(VirtIOSCSI *s, VirtIOSCSIReq *req) > r = virtio_scsi_do_tmf(s, req); > } > > - } else if (req->req.tmf.type == VIRTIO_SCSI_T_AN_QUERY || > - req->req.tmf.type == VIRTIO_SCSI_T_AN_SUBSCRIBE) { > + } else if (type == VIRTIO_SCSI_T_AN_QUERY || > + type == VIRTIO_SCSI_T_AN_SUBSCRIBE) { > if (virtio_scsi_parse_req(req, sizeof(VirtIOSCSICtrlANReq), > sizeof(VirtIOSCSICtrlANResp)) < 0) { > virtio_scsi_bad_req(); > Thanks, applied. Paolo