From: Samson Tam <samson....@amd.com>

[Why & How]
Fix static analysis warnings in SPL library

Reviewed-by: Alvin Lee <alvin.l...@amd.com>
Signed-off-by: Samson Tam <samson....@amd.com>
Signed-off-by: Aurabindo Pillai <aurabindo.pil...@amd.com>
---
 .../gpu/drm/amd/display/dc/spl/dc_spl_types.h |  4 +--
 .../gpu/drm/amd/display/dc/spl/spl_debug.h    | 33 +++++++++++--------
 .../drm/amd/display/dc/spl/spl_fixpt31_32.c   | 32 +++++++++---------
 .../drm/amd/display/dc/spl/spl_fixpt31_32.h   | 17 ++++------
 .../gpu/drm/amd/display/dc/spl/spl_os_types.h |  3 +-
 5 files changed, 45 insertions(+), 44 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/spl/dc_spl_types.h 
b/drivers/gpu/drm/amd/display/dc/spl/dc_spl_types.h
index 2a74ff5fdfdb..48e4217555f8 100644
--- a/drivers/gpu/drm/amd/display/dc/spl/dc_spl_types.h
+++ b/drivers/gpu/drm/amd/display/dc/spl/dc_spl_types.h
@@ -5,10 +5,8 @@
 #ifndef __DC_SPL_TYPES_H__
 #define __DC_SPL_TYPES_H__
 
+#include "spl_debug.h"
 #include "spl_os_types.h"   // swap
-#ifndef SPL_ASSERT
-#define SPL_ASSERT(_bool) ((void *)0)
-#endif
 #include "spl_fixpt31_32.h"    // fixed31_32 and related functions
 #include "spl_custom_float.h" // custom float and related functions
 
diff --git a/drivers/gpu/drm/amd/display/dc/spl/spl_debug.h 
b/drivers/gpu/drm/amd/display/dc/spl/spl_debug.h
index 5696dafd0894..a6f6132df241 100644
--- a/drivers/gpu/drm/amd/display/dc/spl/spl_debug.h
+++ b/drivers/gpu/drm/amd/display/dc/spl/spl_debug.h
@@ -5,21 +5,26 @@
 #ifndef SPL_DEBUG_H
 #define SPL_DEBUG_H
 
-#ifdef SPL_ASSERT
-#undef SPL_ASSERT
-#endif
-#define SPL_ASSERT(b)
+#if defined(CONFIG_HAVE_KGDB) || defined(CONFIG_KGDB)
+#define SPL_ASSERT_CRITICAL(expr) do { \
+       if (WARN_ON(!(expr))) { \
+               kgdb_breakpoint(); \
+       } \
+} while (0)
+#else
+#define SPL_ASSERT_CRITICAL(expr) do { \
+       if (WARN_ON(!(expr))) { \
+               ; \
+       } \
+} while (0)
+#endif /* CONFIG_HAVE_KGDB || CONFIG_KGDB */
 
-#define SPL_ASSERT_CRITICAL(expr)  do {if (expr)/* Do nothing */; } while (0)
+#if defined(CONFIG_DEBUG_KERNEL_DC)
+#define SPL_ASSERT(expr) SPL_ASSERT_CRITICAL(expr)
+#else
+#define SPL_ASSERT(expr) WARN_ON(!(expr))
+#endif /* CONFIG_DEBUG_KERNEL_DC */
 
-#ifdef SPL_DALMSG
-#undef SPL_DALMSG
-#endif
-#define SPL_DALMSG(b)
-
-#ifdef SPL_DAL_ASSERT_MSG
-#undef SPL_DAL_ASSERT_MSG
-#endif
-#define SPL_DAL_ASSERT_MSG(b, m)
+#define SPL_BREAK_TO_DEBUGGER() SPL_ASSERT(0)
 
 #endif  // SPL_DEBUG_H
diff --git a/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.c 
b/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.c
index a95565df5487..5fd79d9c67e2 100644
--- a/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.c
+++ b/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.c
@@ -29,7 +29,7 @@ static inline unsigned long long 
complete_integer_division_u64(
 {
        unsigned long long result;
 
-       ASSERT(divisor);
+       SPL_ASSERT(divisor);
 
        result = spl_div64_u64_rem(dividend, divisor, remainder);
 
@@ -63,7 +63,7 @@ struct spl_fixed31_32 spl_fixpt_from_fraction(long long 
numerator, long long den
        unsigned long long res_value = complete_integer_division_u64(
                arg1_value, arg2_value, &remainder);
 
-       ASSERT(res_value <= LONG_MAX);
+       SPL_ASSERT(res_value <= (unsigned long long)LONG_MAX);
 
        /* determine fractional part */
        {
@@ -85,7 +85,7 @@ struct spl_fixed31_32 spl_fixpt_from_fraction(long long 
numerator, long long den
        {
                unsigned long long summand = (remainder << 1) >= arg2_value;
 
-               ASSERT(res_value <= LLONG_MAX - summand);
+               SPL_ASSERT(res_value <= (unsigned long long)LLONG_MAX - 
summand);
 
                res_value += summand;
        }
@@ -118,19 +118,19 @@ struct spl_fixed31_32 spl_fixpt_mul(struct spl_fixed31_32 
arg1, struct spl_fixed
 
        res.value = arg1_int * arg2_int;
 
-       ASSERT(res.value <= (long long)LONG_MAX);
+       SPL_ASSERT(res.value <= (long long)LONG_MAX);
 
        res.value <<= FIXED31_32_BITS_PER_FRACTIONAL_PART;
 
        tmp = arg1_int * arg2_fra;
 
-       ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
+       SPL_ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
 
        res.value += tmp;
 
        tmp = arg2_int * arg1_fra;
 
-       ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
+       SPL_ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
 
        res.value += tmp;
 
@@ -139,7 +139,7 @@ struct spl_fixed31_32 spl_fixpt_mul(struct spl_fixed31_32 
arg1, struct spl_fixed
        tmp = (tmp >> FIXED31_32_BITS_PER_FRACTIONAL_PART) +
                (tmp >= (unsigned long long)spl_fixpt_half.value);
 
-       ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
+       SPL_ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
 
        res.value += tmp;
 
@@ -163,17 +163,17 @@ struct spl_fixed31_32 spl_fixpt_sqr(struct spl_fixed31_32 
arg)
 
        res.value = arg_int * arg_int;
 
-       ASSERT(res.value <= (long long)LONG_MAX);
+       SPL_ASSERT(res.value <= (long long)LONG_MAX);
 
        res.value <<= FIXED31_32_BITS_PER_FRACTIONAL_PART;
 
        tmp = arg_int * arg_fra;
 
-       ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
+       SPL_ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
 
        res.value += tmp;
 
-       ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
+       SPL_ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
 
        res.value += tmp;
 
@@ -182,7 +182,7 @@ struct spl_fixed31_32 spl_fixpt_sqr(struct spl_fixed31_32 
arg)
        tmp = (tmp >> FIXED31_32_BITS_PER_FRACTIONAL_PART) +
                (tmp >= (unsigned long long)spl_fixpt_half.value);
 
-       ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
+       SPL_ASSERT(tmp <= (unsigned long long)(LLONG_MAX - res.value));
 
        res.value += tmp;
 
@@ -196,7 +196,7 @@ struct spl_fixed31_32 spl_fixpt_recip(struct spl_fixed31_32 
arg)
         * Good idea to use Newton's method
         */
 
-       ASSERT(arg.value);
+       SPL_ASSERT(arg.value);
 
        return spl_fixpt_from_fraction(
                spl_fixpt_one.value,
@@ -295,7 +295,7 @@ static struct spl_fixed31_32 
fixed31_32_exp_from_taylor_series(struct spl_fixed3
                n + 1);
        /* TODO find correct res */
 
-       ASSERT(spl_fixpt_lt(arg, spl_fixpt_one));
+       SPL_ASSERT(spl_fixpt_lt(arg, spl_fixpt_one));
 
        do
                res = spl_fixpt_add(
@@ -337,9 +337,9 @@ struct spl_fixed31_32 spl_fixpt_exp(struct spl_fixed31_32 
arg)
                                spl_fixpt_ln2,
                                m));
 
-               ASSERT(m != 0);
+               SPL_ASSERT(m != 0);
 
-               ASSERT(spl_fixpt_lt(
+               SPL_ASSERT(spl_fixpt_lt(
                        spl_fixpt_abs(r),
                        spl_fixpt_one));
 
@@ -364,7 +364,7 @@ struct spl_fixed31_32 spl_fixpt_log(struct spl_fixed31_32 
arg)
 
        struct spl_fixed31_32 error;
 
-       ASSERT(arg.value > 0);
+       SPL_ASSERT(arg.value > 0);
        /* TODO if arg is negative, return NaN */
        /* TODO if arg is zero, return -INF */
 
diff --git a/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.h 
b/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.h
index 8a045e2f8699..ed2647f9a099 100644
--- a/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.h
+++ b/drivers/gpu/drm/amd/display/dc/spl/spl_fixpt31_32.h
@@ -5,11 +5,8 @@
 #ifndef __SPL_FIXED31_32_H__
 #define __SPL_FIXED31_32_H__
 
-#include "os_types.h"
+#include "spl_debug.h"
 #include "spl_os_types.h"   // swap
-#ifndef ASSERT
-#define ASSERT(_bool) ((void *)0)
-#endif
 
 #ifndef LLONG_MAX
 #define LLONG_MAX 9223372036854775807ll
@@ -194,7 +191,7 @@ static inline struct spl_fixed31_32 spl_fixpt_clamp(
  */
 static inline struct spl_fixed31_32 spl_fixpt_shl(struct spl_fixed31_32 arg, 
unsigned char shift)
 {
-       ASSERT(((arg.value >= 0) && (arg.value <= LLONG_MAX >> shift)) ||
+       SPL_ASSERT(((arg.value >= 0) && (arg.value <= LLONG_MAX >> shift)) ||
                ((arg.value < 0) && (arg.value >= ~(LLONG_MAX >> shift))));
 
        arg.value = arg.value << shift;
@@ -231,7 +228,7 @@ static inline struct spl_fixed31_32 spl_fixpt_add(struct 
spl_fixed31_32 arg1, st
 {
        struct spl_fixed31_32 res;
 
-       ASSERT(((arg1.value >= 0) && (LLONG_MAX - arg1.value >= arg2.value)) ||
+       SPL_ASSERT(((arg1.value >= 0) && (LLONG_MAX - arg1.value >= 
arg2.value)) ||
                ((arg1.value < 0) && (LLONG_MIN - arg1.value <= arg2.value)));
 
        res.value = arg1.value + arg2.value;
@@ -256,7 +253,7 @@ static inline struct spl_fixed31_32 spl_fixpt_sub(struct 
spl_fixed31_32 arg1, st
 {
        struct spl_fixed31_32 res;
 
-       ASSERT(((arg2.value >= 0) && (LLONG_MIN + arg2.value <= arg1.value)) ||
+       SPL_ASSERT(((arg2.value >= 0) && (LLONG_MIN + arg2.value <= 
arg1.value)) ||
                ((arg2.value < 0) && (LLONG_MAX + arg2.value >= arg1.value)));
 
        res.value = arg1.value - arg2.value;
@@ -448,7 +445,7 @@ static inline int spl_fixpt_round(struct spl_fixed31_32 arg)
 
        const long long summand = spl_fixpt_half.value;
 
-       ASSERT(LLONG_MAX - (long long)arg_value >= summand);
+       SPL_ASSERT(LLONG_MAX - (long long)arg_value >= summand);
 
        arg_value += summand;
 
@@ -469,7 +466,7 @@ static inline int spl_fixpt_ceil(struct spl_fixed31_32 arg)
        const long long summand = spl_fixpt_one.value -
                spl_fixpt_epsilon.value;
 
-       ASSERT(LLONG_MAX - (long long)arg_value >= summand);
+       SPL_ASSERT(LLONG_MAX - (long long)arg_value >= summand);
 
        arg_value += summand;
 
@@ -504,7 +501,7 @@ static inline struct spl_fixed31_32 
spl_fixpt_truncate(struct spl_fixed31_32 arg
        bool negative = arg.value < 0;
 
        if (frac_bits >= FIXED31_32_BITS_PER_FRACTIONAL_PART) {
-               ASSERT(frac_bits == FIXED31_32_BITS_PER_FRACTIONAL_PART);
+               SPL_ASSERT(frac_bits == FIXED31_32_BITS_PER_FRACTIONAL_PART);
                return arg;
        }
 
diff --git a/drivers/gpu/drm/amd/display/dc/spl/spl_os_types.h 
b/drivers/gpu/drm/amd/display/dc/spl/spl_os_types.h
index 709706ed4f2c..2e6ba71960ac 100644
--- a/drivers/gpu/drm/amd/display/dc/spl/spl_os_types.h
+++ b/drivers/gpu/drm/amd/display/dc/spl/spl_os_types.h
@@ -6,6 +6,8 @@
 #ifndef _SPL_OS_TYPES_H_
 #define _SPL_OS_TYPES_H_
 
+#include "spl_debug.h"
+
 #include <linux/slab.h>
 #include <linux/kgdb.h>
 #include <linux/kref.h>
@@ -18,7 +20,6 @@
  * general debug capabilities
  *
  */
-#define SPL_BREAK_TO_DEBUGGER() ASSERT(0)
 
 static inline uint64_t spl_div_u64_rem(uint64_t dividend, uint32_t divisor, 
uint32_t *remainder)
 {
-- 
2.46.0

Reply via email to