Hi Shuai, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Shuai-Xue/x86-mce-Use-is_copy_from_user-to-determine-copy-from-user-context/20250306-101505 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20250306021031.5538-2-xueshuai%40linux.alibaba.com patch subject: [PATCH v3 1/3] x86/mce: Use is_copy_from_user() to determine copy-from-user context config: i386-buildonly-randconfig-002-20250307 (https://download.01.org/0day-ci/archive/20250307/202503071154.xQpKARjN-lkp@xxxxxxxxx/config) compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250307/202503071154.xQpKARjN-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202503071154.xQpKARjN-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from arch/x86/kernel/cpu/mce/severity.c:16: In file included from arch/x86/include/asm/traps.h:6: In file included from include/linux/kprobes.h:28: In file included from include/linux/ftrace.h:13: In file included from include/linux/kallsyms.h:13: In file included from include/linux/mm.h:2321: include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ >> arch/x86/kernel/cpu/mce/severity.c:305:25: error: expected ';' after return statement 305 | return IN_KERNEL_RECOV | ^ | ; 1 warning and 1 error generated. vim +305 arch/x86/kernel/cpu/mce/severity.c 274 275 /* 276 * If mcgstatus indicated that ip/cs on the stack were 277 * no good, then "m->cs" will be zero and we will have 278 * to assume the worst case (IN_KERNEL) as we actually 279 * have no idea what we were executing when the machine 280 * check hit. 281 * If we do have a good "m->cs" (or a faked one in the 282 * case we were executing in VM86 mode) we can use it to 283 * distinguish an exception taken in user from from one 284 * taken in the kernel. 285 */ 286 static noinstr int error_context(struct mce *m, struct pt_regs *regs) 287 { 288 int fixup_type; 289 bool copy_user; 290 291 if ((m->cs & 3) == 3) 292 return IN_USER; 293 294 if (!mc_recoverable(m->mcgstatus)) 295 return IN_KERNEL; 296 297 /* Allow instrumentation around external facilities usage. */ 298 instrumentation_begin(); 299 fixup_type = ex_get_fixup_type(m->ip); 300 copy_user = is_copy_from_user(regs); 301 instrumentation_end(); 302 303 if (copy_user) { 304 m->kflags |= MCE_IN_KERNEL_COPYIN | MCE_IN_KERNEL_COPYIN; > 305 return IN_KERNEL_RECOV 306 } 307 308 switch (fixup_type) { 309 case EX_TYPE_FAULT_MCE_SAFE: 310 case EX_TYPE_DEFAULT_MCE_SAFE: 311 m->kflags |= MCE_IN_KERNEL_RECOV; 312 return IN_KERNEL_RECOV; 313 314 default: 315 return IN_KERNEL; 316 } 317 } 318 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki