Displaying 20 results from an estimated 45 matches for "virtio_gpu_get_caps_ioctl".
2019 Jun 05
10
[PATCH 1/4] drm/virtio: Ensure cached capset entries are valid before copying.
From: David Riley <davidriley at chromium.org>
virtio_gpu_get_caps_ioctl could return success with invalid data if a
second caller to the function occurred after the entry was created in
virtio_gpu_cmd_get_capset but prior to the virtio_gpu_cmd_capset_cb
callback being called. This could leak contents of memory as well
since the caps_cache allocation is done without ze...
2019 May 27
2
[PATCH 12/13] drm/virtio: drop DRM_AUTH usage from the driver
...e changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
index 949a264985fc..e72626faba52 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -553,34 +553,34 @@ static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
struct drm_ioctl_desc virtio_gpu_ioctls[DRM_VIRTIO_NUM_IOCTLS] = {
DRM_IOCTL_DEF_DRV(VIRTGPU_MAP, virtio_gpu_map_ioctl,
- DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW),
+ DRM_UNLOCKED | DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_EXECBUFFER, virtio_gpu_execbu...
2019 May 27
2
[PATCH 12/13] drm/virtio: drop DRM_AUTH usage from the driver
...e changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
index 949a264985fc..e72626faba52 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -553,34 +553,34 @@ static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
struct drm_ioctl_desc virtio_gpu_ioctls[DRM_VIRTIO_NUM_IOCTLS] = {
DRM_IOCTL_DEF_DRV(VIRTGPU_MAP, virtio_gpu_map_ioctl,
- DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW),
+ DRM_UNLOCKED | DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_EXECBUFFER, virtio_gpu_execbu...
2019 May 22
1
[PATCH 2/4] drm/virtio: remove irrelevant DRM_UNLOCKED flag
...e changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
index 949a264985fc..b7f9dfe61d1c 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -553,34 +553,34 @@ static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
struct drm_ioctl_desc virtio_gpu_ioctls[DRM_VIRTIO_NUM_IOCTLS] = {
DRM_IOCTL_DEF_DRV(VIRTGPU_MAP, virtio_gpu_map_ioctl,
- DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW),
+ DRM_AUTH | DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_EXECBUFFER, virtio_gpu_execbuffer...
2019 Jun 06
0
[PATCH 12/13] drm/virtio: drop DRM_AUTH usage from the driver
...deletions(-)
>
> diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
> index 949a264985fc..e72626faba52 100644
> --- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
> +++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
> @@ -553,34 +553,34 @@ static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
>
> struct drm_ioctl_desc virtio_gpu_ioctls[DRM_VIRTIO_NUM_IOCTLS] = {
> DRM_IOCTL_DEF_DRV(VIRTGPU_MAP, virtio_gpu_map_ioctl,
> - DRM_AUTH | DRM_UNLOCKED | DRM_RENDER_ALLOW),
> + DRM_UNLOCKED | DRM_RENDE...
2019 Jun 17
1
[PATCH 2/4] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
...* HZ;
if (args->flags & VIRTGPU_WAIT_NOWAIT)
- nowait = true;
- ret = virtio_gpu_object_wait(qobj, nowait);
+ timeout = 0;
- drm_gem_object_put_unlocked(gobj);
- return ret;
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2019 Jun 18
1
[PATCH v2 02/12] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
..._virtio_gpu_obj(gobj);
-
- if (args->flags & VIRTGPU_WAIT_NOWAIT)
- nowait = true;
- ret = virtio_gpu_object_wait(qobj, nowait);
-
- drm_gem_object_put_unlocked(gobj);
- return ret;
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2019 Jun 20
2
[PATCH v4 02/12] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
..._virtio_gpu_obj(gobj);
-
- if (args->flags & VIRTGPU_WAIT_NOWAIT)
- nowait = true;
- ret = virtio_gpu_object_wait(qobj, nowait);
-
- drm_gem_object_put_unlocked(gobj);
- return ret;
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2019 Jun 20
2
[PATCH v4 02/12] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
..._virtio_gpu_obj(gobj);
-
- if (args->flags & VIRTGPU_WAIT_NOWAIT)
- nowait = true;
- ret = virtio_gpu_object_wait(qobj, nowait);
-
- drm_gem_object_put_unlocked(gobj);
- return ret;
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2015 Sep 21
0
[PATCH v2 6/6] virtio-gpu: mark as a render gpu
...HOST,
virtio_gpu_transfer_to_host_ioctl,
- DRM_AUTH|DRM_UNLOCKED),
+ DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_WAIT, virtio_gpu_wait_ioctl,
- DRM_AUTH|DRM_UNLOCKED),
+ DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_GET_CAPS, virtio_gpu_get_caps_ioctl,
- DRM_AUTH|DRM_UNLOCKED),
+ DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
};
--
1.8.3.1
2015 Oct 02
0
[PATCH v3 6/7] virtio-gpu: mark as a render gpu
...HOST,
virtio_gpu_transfer_to_host_ioctl,
- DRM_AUTH|DRM_UNLOCKED),
+ DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_WAIT, virtio_gpu_wait_ioctl,
- DRM_AUTH|DRM_UNLOCKED),
+ DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(VIRTGPU_GET_CAPS, virtio_gpu_get_caps_ioctl,
- DRM_AUTH|DRM_UNLOCKED),
+ DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
};
--
1.8.3.1
2017 Nov 27
0
[PATCH] drm/virtio: Don't return invalid caps on timeout
...tl.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/virtio/virtgpu_ioctl.c b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
index b94bd5440e57..902120ad4a6d 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -517,6 +517,8 @@ static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
ret = wait_event_timeout(vgdev->resp_wq,
atomic_read(&cache_ent->is_valid), 5 * HZ);
+ if (!ret)
+ return -EBUSY;
ptr = cache_ent->caps_cache;
--
2.14.3
2019 Jun 05
0
[PATCH 4/4] drm/virtio: Add memory barriers for capset cache.
...| 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();
+
ptr = cache_ent->caps_cache;
if (copy_to_user((void __user *)(unsigned long)args->addr, ptr, size))
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq....
2019 Jun 10
0
[PATCH v2 4/4] drm/virtio: Add memory barriers for capset cache.
...| 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..a50495083d6f 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. */
+ smp_rmb();
+
ptr = cache_ent->caps_cache;
if (copy_to_user((void __user *)(unsigned long)args->addr, ptr, size))
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c...
2019 Jun 19
0
[PATCH v3 03/12] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
..._virtio_gpu_obj(gobj);
-
- if (args->flags & VIRTGPU_WAIT_NOWAIT)
- nowait = true;
- ret = virtio_gpu_object_wait(qobj, nowait);
-
- drm_gem_object_put_unlocked(gobj);
- return ret;
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2019 Jun 26
0
[PATCH v4 02/12] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
...ret = virtio_gpu_object_wait(qobj, nowait);
> -
> - drm_gem_object_put_unlocked(gobj);
> - return ret;
> + return drm_gem_reservation_object_wait(file, args->handle,
> + true, timeout);
> }
>
> static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
> --
> 2.18.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
2019 Jun 28
0
[PATCH v5 02/12] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
...gt;handle);
+ if (obj == NULL)
+ return -ENOENT;
+ ret = reservation_object_test_signaled_rcu(obj->resv, true);
+ drm_gem_object_put_unlocked(obj);
+ return ret ? 0 : -EBUSY;
+ }
+
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2019 Jul 02
0
[PATCH v6 02/18] drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper.
...gt;handle);
+ if (obj == NULL)
+ return -ENOENT;
+ ret = reservation_object_test_signaled_rcu(obj->resv, true);
+ drm_gem_object_put_unlocked(obj);
+ return ret ? 0 : -EBUSY;
+ }
+
+ return drm_gem_reservation_object_wait(file, args->handle,
+ true, timeout);
}
static int virtio_gpu_get_caps_ioctl(struct drm_device *dev,
--
2.18.1
2019 Jul 19
0
[PATCH AUTOSEL 5.2 054/171] drm/virtio: Add memory barriers for capset cache.
...| 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 949a264985fc..19fbffd0f7a3 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. */
+ smp_rmb();
+
ptr = cache_ent->caps_cache;
copy_exit:
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 5bb0f0a084e9..a7684...
2019 Jul 19
0
[PATCH AUTOSEL 5.1 039/141] drm/virtio: Add memory barriers for capset cache.
...| 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 14ce8188c052..fe822d86fb8b 100644
--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c
+++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c
@@ -597,6 +597,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. */
+ smp_rmb();
+
ptr = cache_ent->caps_cache;
copy_exit:
diff --git a/drivers/gpu/drm/virtio/virtgpu_vq.c b/drivers/gpu/drm/virtio/virtgpu_vq.c
index 3ef24f89ef93..35751...