[linux-next:master 4579/4901] arch/x86/kernel/cpu/mce/severity.c:305:22: error: implicit declaration of function 'FIELD_GET'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   8936cec5cb6e27649b86fabf383d7ce4113bba49
commit: 599382062e7b91fb049e339db93c3a0b840d2b6e [4579/4901] x86/mce: add EX_TYPE_EFAULT_REG as in-kernel recovery context to fix copy-from-user operations regression
config: x86_64-buildonly-randconfig-004-20250220 (https://download.01.org/0day-ci/archive/20250220/202502201215.ZkIMdQVr-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250220/202502201215.ZkIMdQVr-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/202502201215.ZkIMdQVr-lkp@xxxxxxxxx/

Note: the linux-next/master HEAD 8936cec5cb6e27649b86fabf383d7ce4113bba49 builds fine.
      It may have been fixed somewhere.

All errors (new ones prefixed by >>):

   arch/x86/kernel/cpu/mce/severity.c: In function 'error_context':
>> arch/x86/kernel/cpu/mce/severity.c:305:22: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration]
     305 |         fixup_type = FIELD_GET(EX_DATA_TYPE_MASK, e->data);
         |                      ^~~~~~~~~
   cc1: some warnings being treated as errors


vim +/FIELD_GET +305 arch/x86/kernel/cpu/mce/severity.c

   275	
   276	/*
   277	 * If mcgstatus indicated that ip/cs on the stack were
   278	 * no good, then "m->cs" will be zero and we will have
   279	 * to assume the worst case (IN_KERNEL) as we actually
   280	 * have no idea what we were executing when the machine
   281	 * check hit.
   282	 * If we do have a good "m->cs" (or a faked one in the
   283	 * case we were executing in VM86 mode) we can use it to
   284	 * distinguish an exception taken in user from from one
   285	 * taken in the kernel.
   286	 */
   287	static noinstr int error_context(struct mce *m, struct pt_regs *regs)
   288	{
   289		const struct exception_table_entry *e;
   290		int fixup_type, imm;
   291		bool copy_user;
   292	
   293		if ((m->cs & 3) == 3)
   294			return IN_USER;
   295	
   296		if (!mc_recoverable(m->mcgstatus))
   297			return IN_KERNEL;
   298	
   299		e = search_exception_tables(m->ip);
   300		if (!e)
   301			return IN_KERNEL;
   302	
   303		/* Allow instrumentation around external facilities usage. */
   304		instrumentation_begin();
 > 305		fixup_type = FIELD_GET(EX_DATA_TYPE_MASK, e->data);
   306		imm  = FIELD_GET(EX_DATA_IMM_MASK,  e->data);
   307		copy_user  = is_copy_from_user(regs);
   308		instrumentation_end();
   309	
   310		switch (fixup_type) {
   311		case EX_TYPE_UACCESS:
   312			if (!copy_user)
   313				return IN_KERNEL;
   314			m->kflags |= MCE_IN_KERNEL_COPYIN | MCE_IN_KERNEL_RECOV;
   315			return IN_KERNEL_RECOV;
   316		case EX_TYPE_IMM_REG:
   317			if (!copy_user || imm != -EFAULT)
   318				return IN_KERNEL;
   319			m->kflags |= MCE_IN_KERNEL_COPYIN | MCE_IN_KERNEL_RECOV;
   320			return IN_KERNEL_RECOV;
   321		case EX_TYPE_FAULT_MCE_SAFE:
   322		case EX_TYPE_DEFAULT_MCE_SAFE:
   323			m->kflags |= MCE_IN_KERNEL_RECOV;
   324			return IN_KERNEL_RECOV;
   325	
   326		default:
   327			return IN_KERNEL;
   328		}
   329	}
   330	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux