On Wed, Jun 05, 2019 at 04:44:23PM -0700, davidriley@xxxxxxxxxxxx wrote: > From: David Riley <davidriley@xxxxxxxxxxxx> > > After data is copied to the cache entry, atomic_set is used indicate > that the data is the entry is valid without appropriate memory barriers. > Similarly the read side was missing the same memory barries. > > Signed-off-by: David Riley <davidriley@xxxxxxxxxxxx> > --- > drivers/gpu/drm/virtio/virtgpu_ioctl.c | 3 +++ > drivers/gpu/drm/virtio/virtgpu_vq.c | 2 ++ > 2 files changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c > index 88c1ed57a3c5..502f5f7c2298 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c > +++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c > @@ -542,6 +542,9 @@ static int virtio_gpu_get_caps_ioctl(struct drm_device *dev, > if (!ret) > return -EBUSY; > > + /* is_valid check must proceed before copy of the cache entry. */ > + virt_rmb(); I don't think you need virt_rmb() here. This isn't guest <=> host communication, so a normal barrier should do. The other three fixes are queued up for drm-misc-next. cheers, Gerd _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization