From: Greg Kroah-Hartman Date: Tue, 30 Apr 2024 08:05:20 +0000 (+0200) Subject: 5.15-stable patches X-Git-Tag: v4.19.313~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ba7f818086537a28ce989685b7c27d7d228da1c;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch --- diff --git a/queue-5.15/bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch b/queue-5.15/bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch new file mode 100644 index 00000000000..c895a5c5a5d --- /dev/null +++ b/queue-5.15/bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch @@ -0,0 +1,44 @@ +From 5af385f5f4cddf908f663974847a4083b2ff2c79 Mon Sep 17 00:00:00 2001 +From: "Matthew Wilcox (Oracle)" +Date: Mon, 29 Apr 2024 15:47:51 +0100 +Subject: bounds: Use the right number of bits for power-of-two CONFIG_NR_CPUS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Matthew Wilcox (Oracle) + +commit 5af385f5f4cddf908f663974847a4083b2ff2c79 upstream. + +bits_per() rounds up to the next power of two when passed a power of +two. This causes crashes on some machines and configurations. + +Reported-by: Михаил Новоселов +Tested-by: Ильфат Гаптрахманов +Link: https://gitlab.freedesktop.org/drm/amd/-/issues/3347 +Link: https://lore.kernel.org/all/1c978cf1-2934-4e66-e4b3-e81b04cb3571@rosalinux.ru/ +Fixes: f2d5dcb48f7b (bounds: support non-power-of-two CONFIG_NR_CPUS) +Cc: +Signed-off-by: Matthew Wilcox (Oracle) +Cc: Rik van Riel +Cc: Mel Gorman +Cc: Peter Zijlstra +Cc: Ingo Molnar +Cc: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman +--- + kernel/bounds.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/bounds.c ++++ b/kernel/bounds.c +@@ -19,7 +19,7 @@ int main(void) + DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS); + DEFINE(MAX_NR_ZONES, __MAX_NR_ZONES); + #ifdef CONFIG_SMP +- DEFINE(NR_CPUS_BITS, bits_per(CONFIG_NR_CPUS)); ++ DEFINE(NR_CPUS_BITS, order_base_2(CONFIG_NR_CPUS)); + #endif + DEFINE(SPINLOCK_SIZE, sizeof(spinlock_t)); + /* End of constants */ diff --git a/queue-5.15/series b/queue-5.15/series index c444fabc6f9..22b0bc6df21 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -75,3 +75,4 @@ riscv-fix-task_size-on-64-bit-nommu.patch i2c-smbus-fix-null-function-pointer-dereference.patch fbdev-fix-incorrect-address-computation-in-deferred-io.patch hid-i2c-hid-remove-i2c_hid_read_pending-flag-to-prevent-lock-up.patch +bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch