From: Greg Kroah-Hartman Date: Wed, 17 Jul 2024 06:21:52 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v4.19.318~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5ff3b9baae87a0e3254a31b26d9ccd9d18f9fdaf;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: compiler-attributes-add-__uninitialized-macro.patch --- diff --git a/queue-5.10/compiler-attributes-add-__uninitialized-macro.patch b/queue-5.10/compiler-attributes-add-__uninitialized-macro.patch new file mode 100644 index 00000000000..0934cdd071a --- /dev/null +++ b/queue-5.10/compiler-attributes-add-__uninitialized-macro.patch @@ -0,0 +1,50 @@ +From fd7eea27a3aed79b63b1726c00bde0d50cf207e2 Mon Sep 17 00:00:00 2001 +From: Heiko Carstens +Date: Mon, 5 Feb 2024 16:48:43 +0100 +Subject: Compiler Attributes: Add __uninitialized macro + +From: Heiko Carstens + +commit fd7eea27a3aed79b63b1726c00bde0d50cf207e2 upstream. + +With INIT_STACK_ALL_PATTERN or INIT_STACK_ALL_ZERO enabled the kernel will +be compiled with -ftrivial-auto-var-init=<...> which causes initialization +of stack variables at function entry time. + +In order to avoid the performance impact that comes with this users can use +the "uninitialized" attribute to prevent such initialization. + +Therefore provide the __uninitialized macro which can be used for cases +where INIT_STACK_ALL_PATTERN or INIT_STACK_ALL_ZERO is enabled, but only +selected variables should not be initialized. + +Acked-by: Kees Cook +Reviewed-by: Nathan Chancellor +Link: https://lore.kernel.org/r/20240205154844.3757121-2-hca@linux.ibm.com +Signed-off-by: Heiko Carstens +Signed-off-by: Greg Kroah-Hartman +--- + include/linux/compiler_attributes.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +--- a/include/linux/compiler_attributes.h ++++ b/include/linux/compiler_attributes.h +@@ -270,6 +270,18 @@ + #define __section(section) __attribute__((__section__(section))) + + /* ++ * Optional: only supported since gcc >= 12 ++ * ++ * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-uninitialized-variable-attribute ++ * clang: https://clang.llvm.org/docs/AttributeReference.html#uninitialized ++ */ ++#if __has_attribute(__uninitialized__) ++# define __uninitialized __attribute__((__uninitialized__)) ++#else ++# define __uninitialized ++#endif ++ ++/* + * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-unused-function-attribute + * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-unused-type-attribute + * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html#index-unused-variable-attribute diff --git a/queue-5.10/series b/queue-5.10/series index 55ab6c2c033..c0a5474064e 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -1,3 +1,4 @@ +compiler-attributes-add-__uninitialized-macro.patch drm-lima-fix-shared-irq-handling-on-driver-remove.patch media-dvb-as102-fe-fix-as10x_register_addr-packing.patch media-dvb-usb-dib0700_devices-add-missing-release_fi.patch