drm_gem_shmem_get_sg_table() never ever returned NULL on error. Correct
the error handling to avoid crash on OOM.

Cc: sta...@vger.kernel.org
Signed-off-by: Dmitry Osipenko <dmitry.osipe...@collabora.com>
---
 drivers/gpu/drm/virtio/virtgpu_object.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/virtio/virtgpu_object.c 
b/drivers/gpu/drm/virtio/virtgpu_object.c
index f293e6ad52da..bea7806a3ae3 100644
--- a/drivers/gpu/drm/virtio/virtgpu_object.c
+++ b/drivers/gpu/drm/virtio/virtgpu_object.c
@@ -168,9 +168,11 @@ static int virtio_gpu_object_shmem_init(struct 
virtio_gpu_device *vgdev,
         * since virtio_gpu doesn't support dma-buf import from other devices.
         */
        shmem->pages = drm_gem_shmem_get_sg_table(&bo->base);
-       if (!shmem->pages) {
+       ret = PTR_ERR(shmem->pages);
+       if (ret) {
                drm_gem_shmem_unpin(&bo->base);
-               return -EINVAL;
+               shmem->pages = NULL;
+               return ret;
        }
 
        if (use_dma_api) {
-- 
2.35.1

Reply via email to