It's sketchy to pass error pointers via to_intel_framebuffer(). It
probably works as long as struct intel_framebuffer embeds struct
drm_framebuffer at offset 0, but be explicit about it.

Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_fbdev_fb.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c 
b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
index 210aee9ae88b..b9dfd00a7d05 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev_fb.c
@@ -67,9 +67,16 @@ struct intel_framebuffer *intel_fbdev_fb_alloc(struct 
drm_fb_helper *helper,
                                                          mode_cmd.pixel_format,
                                                          mode_cmd.modifier[0]),
                                      &mode_cmd);
+       if (IS_ERR(fb)) {
+               i915_gem_object_put(obj);
+               goto err;
+       }
+
        i915_gem_object_put(obj);
 
        return to_intel_framebuffer(fb);
+err:
+       return ERR_CAST(fb);
 }
 
 int intel_fbdev_fb_fill_info(struct intel_display *display, struct fb_info 
*info,
-- 
2.47.3

Reply via email to