[Linux-kernel-mentees] [PATCH v2] video: atmel_lcdc: Fix Shifting signed 32 bit value by 31 bits problem

Bartlomiej Zolnierkiewicz b.zolnierkie at samsung.com
Mon Jul 15 11:33:32 UTC 2019


Hi,

On 7/6/19 8:28 PM, shobhitkukreti at gmail.com wrote:
> From: Shobhit Kukreti <shobhitkukreti at gmail.com>
> 
> Fix ATMEL_LCDC_MEMOR and ATMEL_LCDC_MEMOR_LITTLE 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, this may be a problem since the header is part of public API
> which could be included for builds using compilers which do not handle
> this condition safely resulting in undefined behavior
> 
> Signed-off-by: Shobhit Kukreti <shobhitkukreti at gmail.com>

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

> ---
> Changes in v2:
> 	Fixed spelling typo
> 
>  include/video/atmel_lcdc.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h
> index 43e497c..ac96b4f 100644
> --- a/include/video/atmel_lcdc.h
> +++ b/include/video/atmel_lcdc.h
> @@ -103,9 +103,9 @@ struct atmel_lcdfb_pdata {
>  #define	ATMEL_LCDC_CLKMOD	(1 << 15)
>  #define		ATMEL_LCDC_CLKMOD_ACTIVEDISPLAY	(0 << 15)
>  #define		ATMEL_LCDC_CLKMOD_ALWAYSACTIVE	(1 << 15)
> -#define	ATMEL_LCDC_MEMOR	(1 << 31)
> +#define	ATMEL_LCDC_MEMOR	(1U << 31)
>  #define		ATMEL_LCDC_MEMOR_BIG		(0 << 31)
> -#define		ATMEL_LCDC_MEMOR_LITTLE		(1 << 31)
> +#define		ATMEL_LCDC_MEMOR_LITTLE		(1U << 31)
>  
>  #define ATMEL_LCDC_TIM1		0x0808
>  #define	ATMEL_LCDC_VFP		(0xffU <<  0)

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


More information about the Linux-kernel-mentees mailing list