media: media.h: Fix shifting signed 32-bit value by 31 bits problem
authorShuah Khan <skhan@linuxfoundation.org>
Thu, 13 Jun 2019 00:56:20 +0000 (20:56 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 21 Jun 2019 20:45:38 +0000 (16:45 -0400)
Fix MEDIA_ENT_ID_FLAG_NEXT to use "U" cast to avoid shifting signed
32-bit value by 31 bits problem. This isn't a problem for kernel builds
with gcc.

This could be problem since this header is part of public API which
could be included for builds using compilers that don't handle this
condition safely resulting in undefined behavior.

Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
include/uapi/linux/media.h

index 9aedb187bc486c890fcae8473e785f03c6356b85..383ac7b7d8f07ecae8a882ea2d1f4b87560107bb 100644 (file)
@@ -146,7 +146,7 @@ struct media_device_info {
 #define MEDIA_ENT_FL_CONNECTOR                 (1 << 1)
 
 /* OR with the entity id value to find the next entity */
-#define MEDIA_ENT_ID_FLAG_NEXT                 (1 << 31)
+#define MEDIA_ENT_ID_FLAG_NEXT                 (1U << 31)
 
 struct media_entity_desc {
        __u32 id;