Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7af24377 authored by Alistair Delva's avatar Alistair Delva
Browse files

Revert "drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper."



This reverts commit e6733ec8.

Bug: 147825394
Change-Id: I701d94031f89dfedf6fbe2c28abaab2b72673842
Signed-off-by: default avatarAlistair Delva <adelva@google.com>
parent 127e8dbd
Loading
Loading
Loading
Loading
+12 −16
Original line number Diff line number Diff line
@@ -466,26 +466,22 @@ static int virtio_gpu_wait_ioctl(struct drm_device *dev, void *data,
			    struct drm_file *file)
{
	struct drm_virtgpu_3d_wait *args = data;
	struct drm_gem_object *obj;
	long timeout = 15 * HZ;
	struct drm_gem_object *gobj = NULL;
	struct virtio_gpu_object *qobj = NULL;
	int ret;
	bool nowait = false;

	obj = drm_gem_object_lookup(file, args->handle);
	if (obj == NULL)
	gobj = drm_gem_object_lookup(file, args->handle);
	if (gobj == NULL)
		return -ENOENT;

	if (args->flags & VIRTGPU_WAIT_NOWAIT) {
		ret = dma_resv_test_signaled_rcu(obj->resv, true);
	} else {
		ret = dma_resv_wait_timeout_rcu(obj->resv, true, true,
						timeout);
	}
	if (ret == 0)
		ret = -EBUSY;
	else if (ret > 0)
		ret = 0;
	qobj = gem_to_virtio_gpu_obj(gobj);

	drm_gem_object_put_unlocked(obj);
	if (args->flags & VIRTGPU_WAIT_NOWAIT)
		nowait = true;
	ret = virtio_gpu_object_wait(qobj, nowait);

	drm_gem_object_put_unlocked(gobj);
	return ret;
}