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

Reviewed-by: Andi Shyti <[email protected]>
Reviewed-by: Krzysztof Niemiec <[email protected]>
Signed-off-by: Krzysztof Karas <[email protected]>
---

v6:
 * rebased, no functional changes;

v5:
* split first two patches (Jani);

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

 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