All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:openEuler-1.0-LTS 1636/1636] arch/x86/kernel/fpu/core.c:175:14: warning: mixing declarations and code is a C99 extension
@ 2025-05-15 20:15 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-05-15 20:15 UTC (permalink / raw)
  To: kernel; +Cc: oe-kbuild-all

tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   60611bd206ba7e11ef429b2653fdada76eff4d77
commit: 1e3cb18ebe2976b3294e85c3d162736cc3c7c92b [1636/1636] x86: Enhanced copy capabilities for Hygon processor
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20250516/202505160438.vuslIGAx-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250516/202505160438.vuslIGAx-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202505160438.vuslIGAx-lkp@intel.com/

All warnings (new ones prefixed by >>):

   arch/x86/kernel/fpu/core.c:149:14: warning: no previous prototype for function 'get_fpustate_free_space' [-Wmissing-prototypes]
     149 | unsigned int get_fpustate_free_space(struct fpu *fpu)
         |              ^
   arch/x86/kernel/fpu/core.c:149:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     149 | unsigned int get_fpustate_free_space(struct fpu *fpu)
         | ^
         | static 
>> arch/x86/kernel/fpu/core.c:175:14: warning: mixing declarations and code is a C99 extension [-Wdeclaration-after-statement]
     175 |         struct fpu *fpu = &current->thread.fpu;
         |                     ^
   2 warnings generated.


vim +175 arch/x86/kernel/fpu/core.c

   144	
   145	#if defined(CONFIG_X86_HYGON_LMC_SSE2_ON) || \
   146		defined(CONFIG_X86_HYGON_LMC_AVX2_ON)
   147	
   148	extern unsigned int fpu_kernel_nonatomic_xstate_size;
 > 149	unsigned int get_fpustate_free_space(struct fpu *fpu)
   150	{
   151		if ((fpu_kernel_xstate_size + fpu_kernel_nonatomic_xstate_size) >
   152		    sizeof(fpu->state))
   153			return 0;
   154		return fpu_kernel_nonatomic_xstate_size;
   155	}
   156	
   157	unsigned long get_fpu_registers_pos(struct fpu *fpu, unsigned int off)
   158	{
   159		unsigned long addr = 0;
   160	
   161		if (fpu && (fpu_kernel_nonatomic_xstate_size > off)) {
   162			addr = (unsigned long)&fpu->state.__padding[0];
   163			addr += fpu_kernel_xstate_size + off;
   164		}
   165		return addr;
   166	}
   167	
   168	/*
   169	 * We can call kernel_fpu_begin_nonatomic in non-atomic task context.
   170	 */
   171	int kernel_fpu_begin_nonatomic_mask(void)
   172	{
   173		preempt_disable();
   174	
 > 175		struct fpu *fpu = &current->thread.fpu;
   176	
   177		/* we not support Nested call */
   178		if (test_thread_flag(TIF_USING_FPU_NONATOMIC))
   179			goto err;
   180	
   181		if (KERNEL_FPU_NONATOMIC_SIZE >
   182		    get_fpustate_free_space(&current->thread.fpu))
   183			goto err;
   184	
   185		/*
   186	       * This means we call kernel_fpu_begin_nonatomic after kernel_fpu_begin,
   187	       * but before kernel_fpu_end.
   188	       */
   189		if (this_cpu_read(in_kernel_fpu))
   190			goto err;
   191	
   192		if (in_interrupt())
   193			goto err;
   194	
   195		if (current->flags & PF_KTHREAD)
   196			goto err;
   197	
   198		if (fpu->initialized)
   199			copy_fpregs_to_fpstate(&current->thread.fpu);
   200	
   201		/* Set thread flag: TIC_USING_FPU_NONATOMIC */
   202		set_thread_flag(TIF_USING_FPU_NONATOMIC);
   203	
   204		__cpu_invalidate_fpregs_state();
   205	
   206		preempt_enable();
   207	
   208		return 0;
   209	
   210	err:
   211		preempt_enable();
   212	
   213		return -1;
   214	}
   215	EXPORT_SYMBOL_GPL(kernel_fpu_begin_nonatomic_mask);
   216	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-05-15 20:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-15 20:15 [openeuler:openEuler-1.0-LTS 1636/1636] arch/x86/kernel/fpu/core.c:175:14: warning: mixing declarations and code is a C99 extension kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.