]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Mar 2023 15:29:26 +0000 (16:29 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 1 Mar 2023 15:29:26 +0000 (16:29 +0100)
added patches:
drm-virtio-correct-drm_gem_shmem_get_sg_table-error-handling.patch
drm-virtio-fix-null-vs-is_err-checking-in-virtio_gpu_object_shmem_init.patch

queue-5.10/drm-virtio-correct-drm_gem_shmem_get_sg_table-error-handling.patch [new file with mode: 0644]
queue-5.10/drm-virtio-fix-null-vs-is_err-checking-in-virtio_gpu_object_shmem_init.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/drm-virtio-correct-drm_gem_shmem_get_sg_table-error-handling.patch b/queue-5.10/drm-virtio-correct-drm_gem_shmem_get_sg_table-error-handling.patch
new file mode 100644 (file)
index 0000000..64704ed
--- /dev/null
@@ -0,0 +1,35 @@
+From 64b88afbd92fbf434759d1896a7cf705e1c00e79 Mon Sep 17 00:00:00 2001
+From: Dmitry Osipenko <dmitry.osipenko@collabora.com>
+Date: Thu, 30 Jun 2022 23:07:18 +0300
+Subject: drm/virtio: Correct drm_gem_shmem_get_sg_table() error handling
+
+From: Dmitry Osipenko <dmitry.osipenko@collabora.com>
+
+commit 64b88afbd92fbf434759d1896a7cf705e1c00e79 upstream.
+
+Previous commit fixed checking of the ERR_PTR value returned by
+drm_gem_shmem_get_sg_table(), but it missed to zero out the shmem->pages,
+which will crash virtio_gpu_cleanup_object(). Add the missing zeroing of
+the shmem->pages.
+
+Fixes: c24968734abf ("drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init")
+Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
+Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
+Link: http://patchwork.freedesktop.org/patch/msgid/20220630200726.1884320-2-dmitry.osipenko@collabora.com
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ drivers/gpu/drm/virtio/virtgpu_object.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/gpu/drm/virtio/virtgpu_object.c
++++ b/drivers/gpu/drm/virtio/virtgpu_object.c
+@@ -159,6 +159,7 @@ static int virtio_gpu_object_shmem_init(
+       shmem->pages = drm_gem_shmem_get_sg_table(&bo->base.base);
+       if (IS_ERR(shmem->pages)) {
+               drm_gem_shmem_unpin(&bo->base.base);
++              shmem->pages = NULL;
+               return PTR_ERR(shmem->pages);
+       }
diff --git a/queue-5.10/drm-virtio-fix-null-vs-is_err-checking-in-virtio_gpu_object_shmem_init.patch b/queue-5.10/drm-virtio-fix-null-vs-is_err-checking-in-virtio_gpu_object_shmem_init.patch
new file mode 100644 (file)
index 0000000..d9b78eb
--- /dev/null
@@ -0,0 +1,37 @@
+From c24968734abfed81c8f93dc5f44a7b7a9aecadfa Mon Sep 17 00:00:00 2001
+From: Miaoqian Lin <linmq006@gmail.com>
+Date: Thu, 2 Jun 2022 14:42:22 +0400
+Subject: drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init
+
+From: Miaoqian Lin <linmq006@gmail.com>
+
+commit c24968734abfed81c8f93dc5f44a7b7a9aecadfa upstream.
+
+Since drm_prime_pages_to_sg() function return error pointers.
+The drm_gem_shmem_get_sg_table() function returns error pointers too.
+Using IS_ERR() to check the return value to fix this.
+
+Fixes: 2f2aa13724d5 ("drm/virtio: move virtio_gpu_mem_entry initialization to new function")
+Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
+Link: http://patchwork.freedesktop.org/patch/msgid/20220602104223.54527-1-linmq006@gmail.com
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ drivers/gpu/drm/virtio/virtgpu_object.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/virtio/virtgpu_object.c
++++ b/drivers/gpu/drm/virtio/virtgpu_object.c
+@@ -157,9 +157,9 @@ static int virtio_gpu_object_shmem_init(
+        * since virtio_gpu doesn't support dma-buf import from other devices.
+        */
+       shmem->pages = drm_gem_shmem_get_sg_table(&bo->base.base);
+-      if (!shmem->pages) {
++      if (IS_ERR(shmem->pages)) {
+               drm_gem_shmem_unpin(&bo->base.base);
+-              return -EINVAL;
++              return PTR_ERR(shmem->pages);
+       }
+       if (use_dma_api) {
index d8bed65aa2dc76cf4edc043077f5da5aefd51874..b6aef9167ac6ae79ced3420496a26e65212f1266 100644 (file)
@@ -12,3 +12,5 @@ vc_screen-don-t-clobber-return-value-in-vcs_read.patch
 md-flush-workqueue-md_rdev_misc_wq-in-md_alloc.patch
 scripts-tags.sh-invoke-realpath-via-xargs.patch
 scripts-tags.sh-fix-incompatibility-with-pcre2.patch
+drm-virtio-fix-null-vs-is_err-checking-in-virtio_gpu_object_shmem_init.patch
+drm-virtio-correct-drm_gem_shmem_get_sg_table-error-handling.patch