Re: [PATCH] video: radeon.h Fix Shifting signed 32 bit value by 31 bits problem

From: Bartlomiej Zolnierkiewicz
Date: Mon Jul 15 2019 - 07:35:04 EST



On 7/6/19 8:41 PM, Shobhit Kukreti wrote:
> Fix RB2D_DC_BUSY and HORZ_AUTO_RATIO_INC defines to use "U" cast to
> avoid shifting signed 32 bit values by 31 bit problem. This is not a
> problem for gcc built kernel.
>
> However, the header file being a public api, other compilers may not
> handle the condition safely resulting in undefined behavior.
>
> Signed-off-by: Shobhit Kukreti <shobhitkukreti@xxxxxxxxx>

While you are at it please convert radeon.h to use BIT() macro.

> ---
> include/video/radeon.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/video/radeon.h b/include/video/radeon.h
> index 005eae1..cb0a5f6 100644
> --- a/include/video/radeon.h
> +++ b/include/video/radeon.h
> @@ -531,7 +531,7 @@
> #define RB2D_DC_FLUSH_2D (1 << 0)
> #define RB2D_DC_FREE_2D (1 << 2)
> #define RB2D_DC_FLUSH_ALL (RB2D_DC_FLUSH_2D | RB2D_DC_FREE_2D)
> -#define RB2D_DC_BUSY (1 << 31)
> +#define RB2D_DC_BUSY (1U << 31)
>
> /* DSTCACHE_MODE bits constants */
> #define RB2D_DC_AUTOFLUSH_ENABLE (1 << 8)
> @@ -672,7 +672,7 @@
> #define HORZ_STRETCH_ENABLE (1 << 25)
> #define HORZ_AUTO_RATIO (1 << 27)
> #define HORZ_FP_LOOP_STRETCH (0x7 << 28)
> -#define HORZ_AUTO_RATIO_INC (1 << 31)
> +#define HORZ_AUTO_RATIO_INC (1U << 31)
>
>
> /* FP_VERT_STRETCH bit constants */

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics