[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87mw6ks5pa.fsf@rustcorp.com.au>
Date: Fri, 19 Dec 2014 13:31:53 +1030
From: Rusty Russell <rusty@...tcorp.com.au>
To: "Michael S. Tsirkin" <mst@...hat.com>, linux-kernel@...r.kernel.org
Cc: virtualization@...ts.linux-foundation.org
Subject: Re: [PATCH 6/6] virtio: core support for config generation
"Michael S. Tsirkin" <mst@...hat.com> writes:
> virtio 1.0 spec says:
>
> Drivers MUST NOT assume reads from fields greater than 32 bits wide are
> atomic, nor are reads from multiple fields: drivers SHOULD read device
> configuration space fields like so:
> u32 before, after;
> do {
> before = get_config_generation(device);
> // read config entry/entries.
> after = get_config_generation(device);
> } while (after != before);
>
> Do exactly this, for transports that support it.
> static inline void virtio_cwrite8(struct virtio_device *vdev,
> @@ -352,6 +375,7 @@ static inline u64 virtio_cread64(struct virtio_device *vdev,
> {
> u64 ret;
> vdev->config->get(vdev, offset, &ret, sizeof(ret));
> + __virtio_cread_many(vdev, offset, &ret, 1, sizeof(ret));
> return virtio64_to_cpu(vdev, (__force __virtio64)ret);
> }
The "vdev->config->get(vdev, offset, &ret, sizeof(ret));" should
be deleted. Harmless if not, though.
Cheers,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists