Commit 60448066 authored by Huang Shijie's avatar Huang Shijie Committed by Guo Mengqi
Browse files

lib/genalloc.c: change return type to unsigned long for bitmap_set_ll

mainline inclusion
from mainline-v5.12-rc1
commit 0e24465d
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7R8MK
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0e24465d3313832e82f8bd9ee2439da1367dd2e5

--------------------------------

Just as bitmap_clear_ll(), change return type to unsigned long
for bitmap_set_ll to avoid the possible overflow in future.

Link: https://lkml.kernel.org/r/20210105031644.2771-1-sjhuang@iluvatar.ai


Signed-off-by: default avatarHuang Shijie <sjhuang@iluvatar.ai>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarGuo Mengqi <guomengqi3@huawei.com>
parent 0bddec08
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -81,7 +81,8 @@ static int clear_bits_ll(unsigned long *addr, unsigned long mask_to_clear)
 * users set the same bit, one user will return remain bits, otherwise
 * return 0.
 */
static int bitmap_set_ll(unsigned long *map, unsigned long start, unsigned long nr)
static unsigned long
bitmap_set_ll(unsigned long *map, unsigned long start, unsigned long nr)
{
	unsigned long *p = map + BIT_WORD(start);
	const unsigned long size = start + nr;