]> git.baikalelectronics.ru Git - kernel.git/commit
locking/refcount: Ensure integer operands are treated as signed
authorWill Deacon <will@kernel.org>
Thu, 21 Nov 2019 11:58:54 +0000 (11:58 +0000)
committerIngo Molnar <mingo@kernel.org>
Mon, 25 Nov 2019 08:14:57 +0000 (09:14 +0100)
commit24ba69c092e4b34eb2532c2924e3350baeec3fc2
treee83eb898f3d88d3ef35fb872fc79c92fa63a614b
parent1486a97b6cb840c645c67023479b1c60053fb656
locking/refcount: Ensure integer operands are treated as signed

In preparation for changing the saturation point of REFCOUNT_FULL to
INT_MIN/2, change the type of integer operands passed into the API
from 'unsigned int' to 'int' so that we can avoid casting during
comparisons when we don't want to fall foul of C integral conversion
rules for signed and unsigned types.

Since the kernel is compiled with '-fno-strict-overflow', we don't need
to worry about the UB introduced by signed overflow here. Furthermore,
we're already making heavy use of the atomic_t API, which operates
exclusively on signed types.

Signed-off-by: Will Deacon <will@kernel.org>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Tested-by: Hanjun Guo <guohanjun@huawei.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Elena Reshetova <elena.reshetova@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/20191121115902.2551-3-will@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/refcount.h
lib/refcount.c