Prefer common check_add_overflow() from overflow.h over the locally
rolled versions of it. While check_add_overflow() does require a
variable to assign to, unlike add_overflows_t(), it's still better than
having multiple versions around.

Cc: Kees Cook <[email protected]>
Signed-off-by: Jani Nikula <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_fb.c |  6 +++---
 drivers/gpu/drm/i915/i915_utils.h       | 14 --------------
 2 files changed, 3 insertions(+), 17 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c 
b/drivers/gpu/drm/i915/display/intel_fb.c
index 3ea6470d6d92..86b443433e8b 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -1106,7 +1106,7 @@ static int intel_fb_offset_to_xy(int *x, int *y,
 {
        struct drm_i915_private *i915 = to_i915(fb->dev);
        unsigned int height;
-       u32 alignment;
+       u32 alignment, unused;
 
        if (DISPLAY_VER(i915) >= 12 &&
            !intel_fb_needs_pot_stride_remap(to_intel_framebuffer(fb)) &&
@@ -1128,8 +1128,8 @@ static int intel_fb_offset_to_xy(int *x, int *y,
        height = ALIGN(height, intel_tile_height(fb, color_plane));
 
        /* Catch potential overflows early */
-       if (add_overflows_t(u32, mul_u32_u32(height, fb->pitches[color_plane]),
-                           fb->offsets[color_plane])) {
+       if (check_add_overflow(mul_u32_u32(height, fb->pitches[color_plane]),
+                              fb->offsets[color_plane], &unused)) {
                drm_dbg_kms(&i915->drm,
                            "Bad offset 0x%08x or pitch %d for color plane 
%d\n",
                            fb->offsets[color_plane], fb->pitches[color_plane],
diff --git a/drivers/gpu/drm/i915/i915_utils.h 
b/drivers/gpu/drm/i915/i915_utils.h
index b45ef0560611..06ec6ceb61d5 100644
--- a/drivers/gpu/drm/i915/i915_utils.h
+++ b/drivers/gpu/drm/i915/i915_utils.h
@@ -73,20 +73,6 @@ bool i915_error_injected(void);
        __i915_printk(i915, i915_error_injected() ? KERN_DEBUG : KERN_ERR, \
                      fmt, ##__VA_ARGS__)
 
-#if defined(GCC_VERSION) && GCC_VERSION >= 70000
-#define add_overflows_t(T, A, B) \
-       __builtin_add_overflow_p((A), (B), (T)0)
-#else
-#define add_overflows_t(T, A, B) ({ \
-       typeof(A) a = (A); \
-       typeof(B) b = (B); \
-       (T)(a + b) < a; \
-})
-#endif
-
-#define add_overflows(A, B) \
-       add_overflows_t(typeof((A) + (B)), (A), (B))
-
 #define range_overflows(start, size, max) ({ \
        typeof(start) start__ = (start); \
        typeof(size) size__ = (size); \
-- 
2.39.2

Reply via email to