[PATCH] drm/virtio: check return value of vgdev_output_init()

shechenglong <[email protected]> Sun, 2 Aug 2026 18:11:08 +0800
Newsgroups dev.linux.lists.virtualization,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
The return value of vgdev_output_init(), called by=0D
virtio_gpu_modeset_init(), is not checked. As a result, modeset=0D
initialization continues even if an output fails to initialize.=0D
=0D
check the return value and return the error to the caller.=0D
=0D
Signed-off-by: shechenglong <[email protected]>=0D
---=0D
 drivers/gpu/drm/virtio/virtgpu_display.c | 7 +++++--=0D
 1 file changed, 5 insertions(+), 2 deletions(-)=0D
=0D
diff --git a/drivers/gpu/drm/virtio/virtgpu_display.c b/drivers/gpu/drm/vir=
tio/virtgpu_display.c=0D
index 44ffffec550f..f2b98d018c1e 100644=0D
--- a/drivers/gpu/drm/virtio/virtgpu_display.c=0D
+++ b/drivers/gpu/drm/virtio/virtgpu_display.c=0D
@@ -378,8 +378,11 @@ int virtio_gpu_modeset_init(struct virtio_gpu_device *=
vgdev)=0D
=0D
    vgdev->ddev->mode_config.fb_modifiers_not_supported =3D true;=0D
=0D
-   for (i =3D 0 ; i < vgdev->num_scanouts; ++i)=0D
-       vgdev_output_init(vgdev, i);=0D
+   for (i =3D 0; i < vgdev->num_scanouts; ++i) {=0D
+       ret =3D vgdev_output_init(vgdev, i);=0D
+       if (ret)=0D
+           return ret;=0D
+   }=0D
=0D
    ret =3D drm_vblank_init(vgdev->ddev, vgdev->num_scanouts);=0D
    if (ret)=0D
--=0D
2.33.0=0D
=0D