Commit 430220b0 authored by Cornelia Huck's avatar Cornelia Huck
Browse files

vfio-ccw: document possible errors



Interacting with the I/O and the async regions can yield a number
of errors, which had been undocumented so far. These are part of
the api, so remedy that.

Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
Reviewed-by: default avatarEric Farman <farman@linux.ibm.com>
Message-Id: <20200407111605.1795-1-cohuck@redhat.com>
parent 725b94d7
Loading
Loading
Loading
Loading
+54 −2
Original line number Diff line number Diff line
@@ -204,15 +204,44 @@ definition of the region is::
	  __u32   ret_code;
  } __packed;

This region is always available.

While starting an I/O request, orb_area should be filled with the
guest ORB, and scsw_area should be filled with the SCSW of the Virtual
Subchannel.

irb_area stores the I/O result.

ret_code stores a return code for each access of the region.
ret_code stores a return code for each access of the region. The following
values may occur:

``0``
  The operation was successful.

``-EOPNOTSUPP``
  The orb specified transport mode or an unidentified IDAW format, or the
  scsw specified a function other than the start function.

``-EIO``
  A request was issued while the device was not in a state ready to accept
  requests, or an internal error occurred.

``-EBUSY``
  The subchannel was status pending or busy, or a request is already active.

``-EAGAIN``
  A request was being processed, and the caller should retry.

``-EACCES``
  The channel path(s) used for the I/O were found to be not operational.

``-ENODEV``
  The device was found to be not operational.

``-EINVAL``
  The orb specified a chain longer than 255 ccws, or an internal error
  occurred.

This region is always available.

vfio-ccw cmd region
-------------------
@@ -231,6 +260,29 @@ This region is exposed via region type VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD.

Currently, CLEAR SUBCHANNEL and HALT SUBCHANNEL use this region.

command specifies the command to be issued; ret_code stores a return code
for each access of the region. The following values may occur:

``0``
  The operation was successful.

``-ENODEV``
  The device was found to be not operational.

``-EINVAL``
  A command other than halt or clear was specified.

``-EIO``
  A request was issued while the device was not in a state ready to accept
  requests.

``-EAGAIN``
  A request was being processed, and the caller should retry.

``-EBUSY``
  The subchannel was status pending or busy while processing a halt request.


vfio-ccw operation details
--------------------------