Previously, the function sti_compositor_bind did not properly
handle potential failure scenarios of drm_vblank_init, which could
lead to unexpected behavior. This update adds a check for the
return value of drm_vblank_init.

Signed-off-by: Haoran Liu <liuhaora...@163.com>
---
 drivers/gpu/drm/sti/sti_compositor.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/sti/sti_compositor.c 
b/drivers/gpu/drm/sti/sti_compositor.c
index 33487a1fed8f..beddbd1c48eb 100644
--- a/drivers/gpu/drm/sti/sti_compositor.c
+++ b/drivers/gpu/drm/sti/sti_compositor.c
@@ -69,6 +69,7 @@ static int sti_compositor_bind(struct device *dev,
        struct drm_plane *primary = NULL;
        struct sti_compositor_subdev_descriptor *desc = compo->data.subdev_desc;
        unsigned int array_size = compo->data.nb_subdev;
+       int ret;
 
        dev_priv->compo = compo;
 
@@ -145,7 +146,11 @@ static int sti_compositor_bind(struct device *dev,
                }
        }
 
-       drm_vblank_init(drm_dev, crtc_id);
+       ret = drm_vblank_init(drm_dev, crtc_id);
+       if (ret) {
+               DRM_ERROR("Failed to initialize vblank\n");
+               return ret;
+       }
 
        return 0;
 }
-- 
2.17.1

Reply via email to