FAILED: patch "[PATCH] mm: take into account mm_cid size for mm_struct static" failed to apply to 6.18-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 6.18-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.18.y
git checkout FETCH_HEAD
git cherry-pick -x be31340a4cc259340044b7fc4f7e97f58c74ee8e
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2026012616-countable-embargo-bbcb@gregkh' --subject-prefix 'PATCH 6.18.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From be31340a4cc259340044b7fc4f7e97f58c74ee8e Mon Sep 17 00:00:00 2001
From: Mathieu Desnoyers <[email protected]>
Date: Wed, 24 Dec 2025 12:33:58 -0500
Subject: [PATCH] mm: take into account mm_cid size for mm_struct static
definitions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Both init_mm and efi_mm static definitions need to make room for the 2 mm_cid cpumasks.
This fixes possible out-of-bounds accesses to init_mm and efi_mm.
Add a space between # and define for the mm_alloc_cid() definition to make it consistent with the coding style used in the rest of this header file.
include/linux/mm_types.h +5 -2
@@ -1368,7 +1368,7 @@ extern struct mm_struct init_mm;#define MM_STRUCT_FLEXIBLE_ARRAY_INIT \ { \ - [0 ... sizeof(cpumask_t)-1] = 0 \ + [0 ... sizeof(cpumask_t) + MM_CID_STATIC_SIZE - 1] = 0 \ }/* Pointer magic because the dynamic array size confuses some compilers. */
@@ -1500,7 +1500,7 @@ static inline int mm_alloc_cid_noprof(struct mm_struct *mm, struct task_struct *mm_init_cid (mm, p);return 0 ; } -#define mm_alloc_cid (...) alloc_hooks(mm_alloc_cid_noprof(__VA_ARGS__)) +# define mm_alloc_cid (...) alloc_hooks(mm_alloc_cid_noprof(__VA_ARGS__))static inline void mm_destroy_cid (struct mm_struct *mm) {
@@ -1514,6 +1514,8 @@ static inline unsigned int mm_cid_size(void) return cpumask_size() + bitmap_size(num_possible_cpus()); } +/* Use 2 * NR_CPUS as worse case for static allocation. */ +# define MM_CID_STATIC_SIZE (2 * sizeof(cpumask_t))#else /* CONFIG_SCHED_MM_CID */ static inline void mm_init_cid (struct mm_struct *mm,struct task_struct *p) { }static inline int mm_alloc_cid (struct mm_struct *mm,struct task_struct *p) {return 0 ; }
@@ -1522,6 +1524,7 @@ static inline unsigned int mm_cid_size(void) {return 0 ; } +# define MM_CID_STATIC_SIZE 0#endif /* CONFIG_SCHED_MM_CID */ struct mmu_gather ;