From: Greg Kroah-Hartman Date: Tue, 30 Apr 2024 08:05:35 +0000 (+0200) Subject: 5.4-stable patches X-Git-Tag: v4.19.313~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6ad4ac35e8e827ecede062196ebe9ff84746580c;p=thirdparty%2Fkernel%2Fstable-queue.git 5.4-stable patches added patches: bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch --- diff --git a/queue-5.4/bounds-use-the-right-number-of-bits-for-power-of-two-config_nr_cpus.patch b/queue-5.4/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.4/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.4/series b/queue-5.4/series index 5fd14b07347..195c601a468 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -101,3 +101,4 @@ dmaengine-owl-fix-register-access-functions.patch idma64-don-t-try-to-serve-interrupts-when-device-is-.patch i2c-smbus-fix-null-function-pointer-dereference.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