]> git.baikalelectronics.ru Git - kernel.git/commit
cpumask: Fix invalid uniprocessor mask assumption
authorSander Vanheule <sander@svanheule.net>
Sat, 2 Jul 2022 16:08:25 +0000 (18:08 +0200)
committerakpm <akpm@linux-foundation.org>
Mon, 18 Jul 2022 00:31:41 +0000 (17:31 -0700)
commit89a7e16ea6bb10244ba5dd2636aff2088a0ee18b
tree1b8f5a819bfcf58de29dc1a31301dc5893056a86
parent61c91dc6dae1e28183c5161adae7cc9bd6215b65
cpumask: Fix invalid uniprocessor mask assumption

On uniprocessor builds, any CPU mask is assumed to contain exactly one CPU
(cpu0).  This assumption ignores the existence of empty masks, resulting
in incorrect behaviour.

cpumask_first_zero(), cpumask_next_zero(), and for_each_cpu_not() don't
provide behaviour matching the assumption that a UP mask is always "1",
and instead provide behaviour matching the empty mask.

Drop the incorrectly optimised code and use the generic implementations in
all cases.

Link: https://lkml.kernel.org/r/86bf3f005abba2d92120ddd0809235cab4f759a6.1656777646.git.sander@svanheule.net
Signed-off-by: Sander Vanheule <sander@svanheule.net>
Suggested-by: Yury Norov <yury.norov@gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Marco Elver <elver@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Valentin Schneider <vschneid@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/cpumask.h
lib/Makefile
lib/cpumask.c