All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Prasad Joshi <prasadjoshi.linux@gmail.com>
Cc: qemu-trivial <qemu-trivial@nongnu.org>,
	qemu-ppc <qemu-ppc@nongnu.org>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
	agraf <agraf@suse.de>
Subject: Re: [Qemu-trivial] [PATCH] spapr_vscsi: remove duplicate condition check
Date: Mon, 24 Mar 2014 18:50:07 +0100	[thread overview]
Message-ID: <5330704F.8030903@redhat.com> (raw)
In-Reply-To: <CALJbWeo48-NszoaDzo8ADhfFszoWumhJV92Tv7V8fWaqx5Jxqg@mail.gmail.com>

Il 24/03/2014 18:19, Prasad Joshi ha scritto:
> On Mon, Mar 24, 2014 at 9:15 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 24/03/2014 16:44, Prasad Joshi ha scritto:
>>
>>> Signed-off-by: Prasad Joshi <prasadjoshi.linux@gmail.com>
>>> ---
>>>  hw/scsi/spapr_vscsi.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
>>> index 34478f0..d4ada4f 100644
>>> --- a/hw/scsi/spapr_vscsi.c
>>> +++ b/hw/scsi/spapr_vscsi.c
>>> @@ -690,7 +690,7 @@ static void vscsi_inquiry_no_target(VSCSIState *s,
>>> vscsi_req *req)
>>>      int rc, len, alen;
>>>
>>>      /* We dont do EVPD. Also check that page_code is 0 */
>>> -    if ((cdb[1] & 0x01) || (cdb[1] & 0x01) || cdb[2] != 0) {
>>> +    if ((cdb[1] & 0x01) || cdb[2] != 0) {
>>>          /* Send INVALID FIELD IN CDB */
>>>          vscsi_makeup_sense(s, req, ILLEGAL_REQUEST, 0x24, 0);
>>>          vscsi_send_rsp(s, req, CHECK_CONDITION, 0, 0);
>>>
>>
>> Not trivial---I have no idea if something else was meant to be checked.
>
> Considering the code intends to follow the comment mentioned above if
> condition. I think the patch is correct.
>
> Here is reference from SCSI manual.
>
> <manual>
> INQUIRY Command
> ================
> EVPD (Enable Vital Product Data) bit
> ----------------------------------------------
> An enable vital product data (EVPD) bit set to one specifies that the
> device server shall return the vital product data specified by the
> PAGE CODE field (see 3.6.4).
>
> 0 ==> If the EVPD bit is set to zero, the device server shall return
> the standard INQUIRY data (see 3.6.2). If the PAGE CODE field is not
> set to zero when the EVPD bit is set to zero, the command shall be
> terminated with CHECK CONDITION status, with the sense key set to
> ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN
> CDB.
>
> 1 ==> When the EVPD bit is set to one, the PAGE CODE field specifies
> which page of vital product data information the device server shall
> return (see 4.4).
> </manual>
>
> - According to comment EVPD is not supported. (First part of if condition)
> - According to manual if EVPD is 0, PAGE CODE must not be zero. PAGE
> CODE is 3rd byte of INQUIRY command (i.e. cmd[2])

More important, there's no other field in the CDB that matters (except 
for an obsolete on in byte 1/bit 1).

Applied to scsi-next branch, thanks.

Paolo



WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Prasad Joshi <prasadjoshi.linux@gmail.com>
Cc: qemu-trivial <qemu-trivial@nongnu.org>,
	qemu-ppc <qemu-ppc@nongnu.org>,
	qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
	agraf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH] spapr_vscsi: remove duplicate condition check
Date: Mon, 24 Mar 2014 18:50:07 +0100	[thread overview]
Message-ID: <5330704F.8030903@redhat.com> (raw)
In-Reply-To: <CALJbWeo48-NszoaDzo8ADhfFszoWumhJV92Tv7V8fWaqx5Jxqg@mail.gmail.com>

Il 24/03/2014 18:19, Prasad Joshi ha scritto:
> On Mon, Mar 24, 2014 at 9:15 PM, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> Il 24/03/2014 16:44, Prasad Joshi ha scritto:
>>
>>> Signed-off-by: Prasad Joshi <prasadjoshi.linux@gmail.com>
>>> ---
>>>  hw/scsi/spapr_vscsi.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/hw/scsi/spapr_vscsi.c b/hw/scsi/spapr_vscsi.c
>>> index 34478f0..d4ada4f 100644
>>> --- a/hw/scsi/spapr_vscsi.c
>>> +++ b/hw/scsi/spapr_vscsi.c
>>> @@ -690,7 +690,7 @@ static void vscsi_inquiry_no_target(VSCSIState *s,
>>> vscsi_req *req)
>>>      int rc, len, alen;
>>>
>>>      /* We dont do EVPD. Also check that page_code is 0 */
>>> -    if ((cdb[1] & 0x01) || (cdb[1] & 0x01) || cdb[2] != 0) {
>>> +    if ((cdb[1] & 0x01) || cdb[2] != 0) {
>>>          /* Send INVALID FIELD IN CDB */
>>>          vscsi_makeup_sense(s, req, ILLEGAL_REQUEST, 0x24, 0);
>>>          vscsi_send_rsp(s, req, CHECK_CONDITION, 0, 0);
>>>
>>
>> Not trivial---I have no idea if something else was meant to be checked.
>
> Considering the code intends to follow the comment mentioned above if
> condition. I think the patch is correct.
>
> Here is reference from SCSI manual.
>
> <manual>
> INQUIRY Command
> ================
> EVPD (Enable Vital Product Data) bit
> ----------------------------------------------
> An enable vital product data (EVPD) bit set to one specifies that the
> device server shall return the vital product data specified by the
> PAGE CODE field (see 3.6.4).
>
> 0 ==> If the EVPD bit is set to zero, the device server shall return
> the standard INQUIRY data (see 3.6.2). If the PAGE CODE field is not
> set to zero when the EVPD bit is set to zero, the command shall be
> terminated with CHECK CONDITION status, with the sense key set to
> ILLEGAL REQUEST, and the additional sense code set to INVALID FIELD IN
> CDB.
>
> 1 ==> When the EVPD bit is set to one, the PAGE CODE field specifies
> which page of vital product data information the device server shall
> return (see 4.4).
> </manual>
>
> - According to comment EVPD is not supported. (First part of if condition)
> - According to manual if EVPD is 0, PAGE CODE must not be zero. PAGE
> CODE is 3rd byte of INQUIRY command (i.e. cmd[2])

More important, there's no other field in the CDB that matters (except 
for an obsolete on in byte 1/bit 1).

Applied to scsi-next branch, thanks.

Paolo

  reply	other threads:[~2014-03-24 17:50 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-24 15:44 [Qemu-trivial] [PATCH] spapr_vscsi: remove duplicate condition check Prasad Joshi
2014-03-24 15:44 ` [Qemu-devel] " Prasad Joshi
2014-03-24 15:45 ` [Qemu-trivial] " Paolo Bonzini
2014-03-24 15:45   ` [Qemu-devel] " Paolo Bonzini
2014-03-24 17:19   ` [Qemu-trivial] " Prasad Joshi
2014-03-24 17:19     ` [Qemu-devel] " Prasad Joshi
2014-03-24 17:50     ` Paolo Bonzini [this message]
2014-03-24 17:50       ` Paolo Bonzini

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=5330704F.8030903@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=agraf@suse.de \
    --cc=prasadjoshi.linux@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=qemu-trivial@nongnu.org \
    --cc=stefanha@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.