acrn-kernel/tools/include/asm-generic
Matthias Goergens 710bb68c2e hugetlb_encode.h: fix undefined behaviour (34 << 26)
Left-shifting past the size of your datatype is undefined behaviour in C. 
The literal 34 gets the type `int`, and that one is not big enough to be
left shifted by 26 bits.

An `unsigned` is long enough (on any machine that has at least 32 bits for
their ints.)

For uniformity, we mark all the literals as unsigned.  But it's only
really needed for HUGETLB_FLAG_ENCODE_16GB.

Thanks to Randy Dunlap for an initial review and suggestion.

Link: https://lkml.kernel.org/r/20220905031904.150925-1-matthias.goergens@gmail.com
Signed-off-by: Matthias Goergens <matthias.goergens@gmail.com>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Muchun Song <songmuchun@bytedance.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2022-10-03 14:02:55 -07:00
..
bitops bitops: wrap non-atomic bitops with a transparent macro 2022-06-30 19:52:41 -07:00
atomic-gcc.h
barrier.h
bitops.h tools: sync tools/bitmap with mother linux 2022-01-15 08:47:31 -08:00
bitsperlong.h
hugetlb_encode.h hugetlb_encode.h: fix undefined behaviour (34 << 26) 2022-10-03 14:02:55 -07:00
unaligned.h x86/insn: Use get_unaligned() instead of memcpy() 2021-10-06 11:56:37 +02:00