From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
Alexander Graf <agraf@suse.de>
Subject: Re: [Qemu-devel] [PATCH v4] spapr-vscsi: add task management
Date: Fri, 26 Jul 2013 20:25:48 +1000 [thread overview]
Message-ID: <51F24EAC.6090601@ozlabs.ru> (raw)
In-Reply-To: <51F242A5.3060704@redhat.com>
On 07/26/2013 07:34 PM, Paolo Bonzini wrote:
> Il 26/07/2013 11:20, Alexey Kardashevskiy ha scritto:
>> - return !fn;
>> +
>> + vscsi_send_rsp(s, req, resp, 0, 0);
>
> We're not there yet, but getting closer...
Oh. Right. Sorry and thanks (ohci + ehci + vscsi at the same time and my
mind melted :) )
Is this better?
- vscsi_send_rsp(s, req, resp, 0, 0);
+ memset(iu, 0, sizeof(struct srp_rsp) + 4);
+ iu->srp.rsp.opcode = SRP_RSP;
+ iu->srp.rsp.req_lim_delta = cpu_to_be32(1);
+ iu->srp.rsp.tag = tag;
+ iu->srp.rsp.flags |= SRP_RSP_FLAG_RSPVALID;
+ iu->srp.rsp.resp_data_len = cpu_to_be32(4);
+ iu->srp.rsp.sol_not = (sol_not & 0x02) >> 1;
+ iu->srp.rsp.status = GOOD;
+ iu->srp.rsp.data[3] = resp;
+
+ vscsi_send_iu(s, req, sizeof(iu->srp.rsp) + 4, VIOSRP_SRP_FORMAT);
And it seems I found a bug in vscsi_send_rsp() (sol_not is always zero), heh.
> These response codes are _not_ SCSI status codes that go in the
> SRP_RSP's status field. They go (in the error case) in the "response
> data" field, so you have to set RSPVALID and set the first four bytes of
> the data[] array in the format that I mentioned before.
>
> The status field must be zero, because the spec says: "Response data
> shall not be provided in any SRP_RSP response that returns a non-zero
> status code in the STATUS field".
>
> Paolo
>
>> + return 1;
>> }
>>
>> static int vscsi_handle_srp_req(VSCSIState *s, vscsi_req *req)
>> diff --git a/hw/scsi/srp.h b/hw/scsi/srp.h
>> index 5e0cad5..d27f31d 100644
>> --- a/hw/scsi/srp.h
>> +++ b/hw/scsi/srp.h
>> @@ -90,6 +90,13 @@ enum {
>> SRP_REV16A_IB_IO_CLASS = 0x0100
>> };
>>
>> +enum {
>> + SRP_TSK_MGMT_COMPLETE = 0x00,
>> + SRP_TSK_MGMT_FIELDS_INVALID = 0x02,
>> + SRP_TSK_MGMT_NOT_SUPPORTED = 0x04,
>> + SRP_TSK_MGMT_FAILED = 0x05
>> +};
>> +
>> struct srp_direct_buf {
>> uint64_t va;
>> uint32_t key;
>>
>
--
Alexey
next prev parent reply other threads:[~2013-07-26 10:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-26 9:20 [Qemu-devel] [PATCH v4] spapr-vscsi: add task management Alexey Kardashevskiy
2013-07-26 9:34 ` Paolo Bonzini
2013-07-26 10:25 ` Alexey Kardashevskiy [this message]
2013-07-26 11:30 ` 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=51F24EAC.6090601@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@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 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.