[PATCH RFC v6 10/20] s390x/virtio-ccw: add virtio set-revision call

Stefan Hajnoczi
2015-01-20T11:08:24Z

On Thu, Dec 11, 2014 at 02:25:12PM +0100, Cornelia Huck
wrote:
> @@ -608,6 +631,25 @@ static int virtio_ccw_cb(SubchDev *sch, CCW1 ccw)
>              }
>          }
>          break;
> +    case CCW_CMD_SET_VIRTIO_REV:
> +        len = sizeof(revinfo);
> +        if (ccw.count < len || (check_len && ccw.count >
len)) {
> +            ret = -EINVAL;
> +            break;
> +        }
> +        if (!ccw.cda) {
> +            ret = -EFAULT;
> +            break;
> +        }
> +        cpu_physical_memory_read(ccw.cda, &revinfo, len);
> +        if (dev->revision >= 0 ||
> +            revinfo.revision > virtio_ccw_rev_max(dev)) {

In the next patch virtio_ccw_handle_set_vq() uses big-endian memory
access functions to load a struct from guest memory.

Here you just copy the struct in without byteswaps.

Are the byteswaps missing here?  (I guess this normally runs big-endian
guests on big-endian hosts so it's not noticable.)

Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL:
<http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20150120/f898dff7/attachment-0001.sig>