From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54171) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1V2eQH-00061d-Ex for qemu-devel@nongnu.org; Fri, 26 Jul 2013 05:34:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1V2eQG-0005ar-82 for qemu-devel@nongnu.org; Fri, 26 Jul 2013 05:34:53 -0400 Message-ID: <51F242A5.3060704@redhat.com> Date: Fri, 26 Jul 2013 11:34:29 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1374830452-5365-1-git-send-email-aik@ozlabs.ru> In-Reply-To: <1374830452-5365-1-git-send-email-aik@ozlabs.ru> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4] spapr-vscsi: add task management List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexey Kardashevskiy Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Alexander Graf 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... 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; >