From: Greg Kroah-Hartman Date: Thu, 16 Jan 2020 19:39:46 +0000 (+0100) Subject: 5.4-stable patches X-Git-Tag: v4.14.166~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6b1206bb5a6494b85ffe333caab607a5d266089a;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: revert-drm-virtio-switch-virtio_gpu_wait_ioctl-to-gem-helper.patch --- diff --git a/queue-5.4/revert-drm-virtio-switch-virtio_gpu_wait_ioctl-to-gem-helper.patch b/queue-5.4/revert-drm-virtio-switch-virtio_gpu_wait_ioctl-to-gem-helper.patch new file mode 100644 index 00000000000..97a206b7a3d --- /dev/null +++ b/queue-5.4/revert-drm-virtio-switch-virtio_gpu_wait_ioctl-to-gem-helper.patch @@ -0,0 +1,73 @@ +From c6477978bb7cff342536cb94d446cbb15bcf5180 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Thu, 16 Jan 2020 20:37:53 +0100 +Subject: Revert "drm/virtio: switch virtio_gpu_wait_ioctl() to gem helper." + +From: Greg Kroah-Hartman + +This reverts commit e6733ec8948475c4b62574e452135dc629294d75 which is +commit 29cf12394c0565d7eb1685bf0c1b4749aa6a8b66 upstream. + +Alistair writes: + After updating to 5.4.7 we noticed that virtio_gpu's wait ioctl + stopped working correctly. + + It looks like 29cf12394c05 ("drm/virtio: switch + virtio_gpu_wait_ioctl() to gem helper.") was picked up automatically, + but it depends on 889165ad6190 ("drm/virtio: pass gem reservation + object to ttm init") from earlier in Gerd's series in Linus's tree, + which was not picked up. + +Cc: Gerd Hoffmann +Cc: Daniel Vetter +Cc: Chia-I Wu +Cc: Sasha Levin +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/virtio/virtgpu_ioctl.c | 28 ++++++++++++---------------- + 1 file changed, 12 insertions(+), 16 deletions(-) + +--- a/drivers/gpu/drm/virtio/virtgpu_ioctl.c ++++ b/drivers/gpu/drm/virtio/virtgpu_ioctl.c +@@ -463,29 +463,25 @@ out: + } + + static int virtio_gpu_wait_ioctl(struct drm_device *dev, void *data, +- struct drm_file *file) ++ 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; + } + diff --git a/queue-5.4/series b/queue-5.4/series index 9251caef4d0..caf823709ce 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -121,3 +121,4 @@ pinctrl-sh-pfc-fix-pinmux_ipsr_phys-to-set-gpsr.patch pinctrl-sh-pfc-do-not-use-platform_get_irq-to-count-interrupts.patch pinctrl-lewisburg-update-pin-list-according-to-v1.1v6.patch pci-pciehp-do-not-disable-interrupt-twice-on-suspend.patch +revert-drm-virtio-switch-virtio_gpu_wait_ioctl-to-gem-helper.patch