All of lore.kernel.org
 help / color / mirror / Atom feed
* [mips-linux:mips-next 52/55] arch/mips/kernel/process.c:510:23: warning: no previous prototype for 'unwind_stack_by_address'
@ 2021-01-29 13:13 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-29 13:13 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 10641 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git mips-next
head:   50886234e846bbf2cbf14a86c727e5fc309fdf25
commit: fa85d6ac2c2511fa4afc671f0a8f307105ce7604 [52/55] MIPS: process: Remove unnecessary headers inclusion
config: mips-randconfig-r023-20210129 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git/commit/?id=fa85d6ac2c2511fa4afc671f0a8f307105ce7604
        git remote add mips-linux https://git.kernel.org/pub/scm/linux/kernel/git/mips/linux.git
        git fetch --no-tags mips-linux mips-next
        git checkout fa85d6ac2c2511fa4afc671f0a8f307105ce7604
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

>> arch/mips/kernel/process.c:510:23: warning: no previous prototype for 'unwind_stack_by_address' [-Wmissing-prototypes]
     510 | unsigned long notrace unwind_stack_by_address(unsigned long stack_page,
         |                       ^~~~~~~~~~~~~~~~~~~~~~~
>> arch/mips/kernel/process.c:602:15: warning: no previous prototype for 'unwind_stack' [-Wmissing-prototypes]
     602 | unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
         |               ^~~~~~~~~~~~
   arch/mips/kernel/process.c:680:15: warning: no previous prototype for 'arch_align_stack' [-Wmissing-prototypes]
     680 | unsigned long arch_align_stack(unsigned long sp)
         |               ^~~~~~~~~~~~~~~~


vim +/unwind_stack_by_address +510 arch/mips/kernel/process.c

^1da177e4c3f41 Linus Torvalds  2005-04-16  506  
^1da177e4c3f41 Linus Torvalds  2005-04-16  507  
f66686f70a2a61 Atsushi Nemoto  2006-07-29  508  #ifdef CONFIG_KALLSYMS
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  509  /* generic stack unwinding function */
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13 @510  unsigned long notrace unwind_stack_by_address(unsigned long stack_page,
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  511  					      unsigned long *sp,
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  512  					      unsigned long pc,
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  513  					      unsigned long *ra)
f66686f70a2a61 Atsushi Nemoto  2006-07-29  514  {
db8466c581cca1 Matt Redfearn   2017-03-21  515  	unsigned long low, high, irq_stack_high;
f66686f70a2a61 Atsushi Nemoto  2006-07-29  516  	struct mips_frame_info info;
f66686f70a2a61 Atsushi Nemoto  2006-07-29  517  	unsigned long size, ofs;
db8466c581cca1 Matt Redfearn   2017-03-21  518  	struct pt_regs *regs;
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  519  	int leaf;
f66686f70a2a61 Atsushi Nemoto  2006-07-29  520  
f66686f70a2a61 Atsushi Nemoto  2006-07-29  521  	if (!stack_page)
f66686f70a2a61 Atsushi Nemoto  2006-07-29  522  		return 0;
f66686f70a2a61 Atsushi Nemoto  2006-07-29  523  
1924600cdb3143 Atsushi Nemoto  2006-09-29  524  	/*
db8466c581cca1 Matt Redfearn   2017-03-21  525  	 * IRQ stacks start at IRQ_STACK_START
db8466c581cca1 Matt Redfearn   2017-03-21  526  	 * task stacks at THREAD_SIZE - 32
1924600cdb3143 Atsushi Nemoto  2006-09-29  527  	 */
db8466c581cca1 Matt Redfearn   2017-03-21  528  	low = stack_page;
db8466c581cca1 Matt Redfearn   2017-03-21  529  	if (!preemptible() && on_irq_stack(raw_smp_processor_id(), *sp)) {
db8466c581cca1 Matt Redfearn   2017-03-21  530  		high = stack_page + IRQ_STACK_START;
db8466c581cca1 Matt Redfearn   2017-03-21  531  		irq_stack_high = high;
db8466c581cca1 Matt Redfearn   2017-03-21  532  	} else {
db8466c581cca1 Matt Redfearn   2017-03-21  533  		high = stack_page + THREAD_SIZE - 32;
db8466c581cca1 Matt Redfearn   2017-03-21  534  		irq_stack_high = 0;
db8466c581cca1 Matt Redfearn   2017-03-21  535  	}
db8466c581cca1 Matt Redfearn   2017-03-21  536  
db8466c581cca1 Matt Redfearn   2017-03-21  537  	/*
db8466c581cca1 Matt Redfearn   2017-03-21  538  	 * If we reached the top of the interrupt stack, start unwinding
db8466c581cca1 Matt Redfearn   2017-03-21  539  	 * the interrupted task stack.
db8466c581cca1 Matt Redfearn   2017-03-21  540  	 */
db8466c581cca1 Matt Redfearn   2017-03-21  541  	if (unlikely(*sp == irq_stack_high)) {
db8466c581cca1 Matt Redfearn   2017-03-21  542  		unsigned long task_sp = *(unsigned long *)*sp;
db8466c581cca1 Matt Redfearn   2017-03-21  543  
db8466c581cca1 Matt Redfearn   2017-03-21  544  		/*
db8466c581cca1 Matt Redfearn   2017-03-21  545  		 * Check that the pointer saved in the IRQ stack head points to
db8466c581cca1 Matt Redfearn   2017-03-21  546  		 * something within the stack of the current task
db8466c581cca1 Matt Redfearn   2017-03-21  547  		 */
db8466c581cca1 Matt Redfearn   2017-03-21  548  		if (!object_is_on_stack((void *)task_sp))
db8466c581cca1 Matt Redfearn   2017-03-21  549  			return 0;
db8466c581cca1 Matt Redfearn   2017-03-21  550  
db8466c581cca1 Matt Redfearn   2017-03-21  551  		/*
db8466c581cca1 Matt Redfearn   2017-03-21  552  		 * Follow pointer to tasks kernel stack frame where interrupted
db8466c581cca1 Matt Redfearn   2017-03-21  553  		 * state was saved.
db8466c581cca1 Matt Redfearn   2017-03-21  554  		 */
db8466c581cca1 Matt Redfearn   2017-03-21  555  		regs = (struct pt_regs *)task_sp;
1924600cdb3143 Atsushi Nemoto  2006-09-29  556  		pc = regs->cp0_epc;
a816b306c62195 James Hogan     2015-12-04  557  		if (!user_mode(regs) && __kernel_text_address(pc)) {
1924600cdb3143 Atsushi Nemoto  2006-09-29  558  			*sp = regs->regs[29];
1924600cdb3143 Atsushi Nemoto  2006-09-29  559  			*ra = regs->regs[31];
1924600cdb3143 Atsushi Nemoto  2006-09-29  560  			return pc;
1924600cdb3143 Atsushi Nemoto  2006-09-29  561  		}
1924600cdb3143 Atsushi Nemoto  2006-09-29  562  		return 0;
1924600cdb3143 Atsushi Nemoto  2006-09-29  563  	}
55b7428303d390 Franck Bui-Huu  2006-10-13  564  	if (!kallsyms_lookup_size_offset(pc, &size, &ofs))
f66686f70a2a61 Atsushi Nemoto  2006-07-29  565  		return 0;
1fd6909802b837 Franck Bui-Huu  2006-08-18  566  	/*
25985edcedea63 Lucas De Marchi 2011-03-30  567  	 * Return ra if an exception occurred at the first instruction
1fd6909802b837 Franck Bui-Huu  2006-08-18  568  	 */
1924600cdb3143 Atsushi Nemoto  2006-09-29  569  	if (unlikely(ofs == 0)) {
1924600cdb3143 Atsushi Nemoto  2006-09-29  570  		pc = *ra;
1924600cdb3143 Atsushi Nemoto  2006-09-29  571  		*ra = 0;
1924600cdb3143 Atsushi Nemoto  2006-09-29  572  		return pc;
1924600cdb3143 Atsushi Nemoto  2006-09-29  573  	}
f66686f70a2a61 Atsushi Nemoto  2006-07-29  574  
f66686f70a2a61 Atsushi Nemoto  2006-07-29  575  	info.func = (void *)(pc - ofs);
f66686f70a2a61 Atsushi Nemoto  2006-07-29  576  	info.func_size = ofs;	/* analyze from start to ofs */
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  577  	leaf = get_frame_info(&info);
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  578  	if (leaf < 0)
f66686f70a2a61 Atsushi Nemoto  2006-07-29  579  		return 0;
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  580  
db8466c581cca1 Matt Redfearn   2017-03-21  581  	if (*sp < low || *sp + info.frame_size > high)
f66686f70a2a61 Atsushi Nemoto  2006-07-29  582  		return 0;
f66686f70a2a61 Atsushi Nemoto  2006-07-29  583  
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  584  	if (leaf)
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  585  		/*
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  586  		 * For some extreme cases, get_frame_info() can
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  587  		 * consider wrongly a nested function as a leaf
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  588  		 * one. In that cases avoid to return always the
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  589  		 * same value.
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  590  		 */
1924600cdb3143 Atsushi Nemoto  2006-09-29  591  		pc = pc != *ra ? *ra : 0;
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  592  	else
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  593  		pc = ((unsigned long *)(*sp))[info.pc_offset];
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  594  
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  595  	*sp += info.frame_size;
1924600cdb3143 Atsushi Nemoto  2006-09-29  596  	*ra = 0;
4d157d5eac29d7 Franck Bui-Huu  2006-08-03  597  	return __kernel_text_address(pc) ? pc : 0;
f66686f70a2a61 Atsushi Nemoto  2006-07-29  598  }
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  599  EXPORT_SYMBOL(unwind_stack_by_address);
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  600  
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  601  /* used by show_backtrace() */
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13 @602  unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  603  			   unsigned long pc, unsigned long *ra)
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  604  {
d42d8d106b0275 Matt Redfearn   2016-12-19  605  	unsigned long stack_page = 0;
d42d8d106b0275 Matt Redfearn   2016-12-19  606  	int cpu;
d42d8d106b0275 Matt Redfearn   2016-12-19  607  
d42d8d106b0275 Matt Redfearn   2016-12-19  608  	for_each_possible_cpu(cpu) {
d42d8d106b0275 Matt Redfearn   2016-12-19  609  		if (on_irq_stack(cpu, *sp)) {
d42d8d106b0275 Matt Redfearn   2016-12-19  610  			stack_page = (unsigned long)irq_stack[cpu];
d42d8d106b0275 Matt Redfearn   2016-12-19  611  			break;
d42d8d106b0275 Matt Redfearn   2016-12-19  612  		}
d42d8d106b0275 Matt Redfearn   2016-12-19  613  	}
d42d8d106b0275 Matt Redfearn   2016-12-19  614  
d42d8d106b0275 Matt Redfearn   2016-12-19  615  	if (!stack_page)
d42d8d106b0275 Matt Redfearn   2016-12-19  616  		stack_page = (unsigned long)task_stack_page(task);
d42d8d106b0275 Matt Redfearn   2016-12-19  617  
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  618  	return unwind_stack_by_address(stack_page, sp, pc, ra);
94ea09c6a8e6c5 Daniel Kalmar   2011-05-13  619  }
f66686f70a2a61 Atsushi Nemoto  2006-07-29  620  #endif
b5943182592ba2 Franck Bui-Huu  2006-08-18  621  

:::::: The code at line 510 was first introduced by commit
:::::: 94ea09c6a8e6c5ffb59bb1d5ca10008d37544e1a MIPS: Add new unwind_stack variant

:::::: TO: Daniel Kalmar <kalmard@homejinni.com>
:::::: CC: Robert Richter <robert.richter@amd.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 26753 bytes --]

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

only message in thread, other threads:[~2021-01-29 13:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-01-29 13:13 [mips-linux:mips-next 52/55] arch/mips/kernel/process.c:510:23: warning: no previous prototype for 'unwind_stack_by_address' 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.