drm_format_info_block_width/height() may return 0 and cause
division by 0 down the line. Warn and return early if any of
these values are 0.

Signed-off-by: Krzysztof Karas <[email protected]>
---
v5 (Jani):
* split first two patches and revert back to early return;

v4 (Andi):
* use WARN_ON_ONCE() instead of returning early;

 drivers/gpu/drm/drm_fb_dma_helper.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/drm_fb_dma_helper.c 
b/drivers/gpu/drm/drm_fb_dma_helper.c
index fd71969d2fb1..2b2513188001 100644
--- a/drivers/gpu/drm/drm_fb_dma_helper.c
+++ b/drivers/gpu/drm/drm_fb_dma_helper.c
@@ -85,6 +85,9 @@ dma_addr_t drm_fb_dma_get_gem_addr(struct drm_framebuffer *fb,
        u32 block_start_y;
        u32 num_hblocks;
 
+       if (WARN_ON_ONCE(block_w == 0 || block_h == 0))
+               return 0;
+
        obj = drm_fb_dma_get_gem_obj(fb, plane);
        if (!obj)
                return 0;
-- 
2.34.1

Reply via email to