mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 09:22:53 -04:00
drm/amd/display: fix static analysis warnings
[Why & How] Fix static analysis warnings in SPL library Reviewed-by: Alvin Lee <alvin.lee2@amd.com> Signed-off-by: Samson Tam <Samson.Tam@amd.com> Signed-off-by: Aurabindo Pillai <aurabindo.pillai@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user