Hi Andrew, The arc architecture with a specific randconfig does not like this, so I enclose a fix-patch to satisfy this case.
>From 04c8084551dbbac3cd1716164e5a19a367be652e Mon Sep 17 00:00:00 2001 From: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> Date: Tue, 26 Aug 2025 12:25:16 +0100 Subject: [PATCH] mm: abstract set_mask_bits() invocation to mm_types.h to satisfy ARC There's some horrible recursive header issue for ARCH whereby you can't even apparently include very fundamental headers like compiler_types.h in linux/sched/coredump.h. So work around this by putting the thing that needs this (use of ACCESS_PRIVATE()) into mm_types.h which presumably in some fashion avoids this issue. This also makes it consistent with __mm_flags_get_dumpable() so is a good change to make things more consistent and neat anyway. Reported-by: kernel test robot <l...@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202508240502.frw1krzo-...@intel.com/ Signed-off-by: Lorenzo Stoakes <lorenzo.stoa...@oracle.com> --- include/linux/mm_types.h | 12 ++++++++++++ include/linux/sched/coredump.h | 5 +---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 0e001dbad455..205ec614171f 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -1255,6 +1255,18 @@ static inline unsigned long __mm_flags_get_word(const struct mm_struct *mm) return bitmap_read(bitmap, 0, BITS_PER_LONG); } +/* + * Update the first system word of mm flags ONLY, applying the specified mask to + * it, then setting all flags specified by bits. + */ +static inline void __mm_flags_set_mask_bits_word(struct mm_struct *mm, + unsigned long mask, unsigned long bits) +{ + unsigned long *bitmap = ACCESS_PRIVATE(&mm->_flags, __mm_flags); + + set_mask_bits(bitmap, mask, bits); +} + #define MM_MT_FLAGS (MT_FLAGS_ALLOC_RANGE | MT_FLAGS_LOCK_EXTERN | \ MT_FLAGS_USE_RCU) extern struct mm_struct init_mm; diff --git a/include/linux/sched/coredump.h b/include/linux/sched/coredump.h index 19ecfcceb27a..b7fafe999073 100644 --- a/include/linux/sched/coredump.h +++ b/include/linux/sched/coredump.h @@ -2,7 +2,6 @@ #ifndef _LINUX_SCHED_COREDUMP_H #define _LINUX_SCHED_COREDUMP_H -#include <linux/compiler_types.h> #include <linux/mm_types.h> #define SUID_DUMP_DISABLE 0 /* No setuid dumping */ @@ -20,9 +19,7 @@ static inline unsigned long __mm_flags_get_dumpable(struct mm_struct *mm) static inline void __mm_flags_set_mask_dumpable(struct mm_struct *mm, int value) { - unsigned long *bitmap = ACCESS_PRIVATE(&mm->_flags, __mm_flags); - - set_mask_bits(bitmap, MMF_DUMPABLE_MASK, value); + __mm_flags_set_mask_bits_word(mm, MMF_DUMPABLE_MASK, value); } extern void set_dumpable(struct mm_struct *mm, int value); -- 2.50.1