Re: [PATCH v2] Makefile.extrawarn: enable -Wmissing-variable-declarations for W=1

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

 



Hi Nick,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 52a93d39b17dc7eb98b6aa3edb93943248e03b2f]

url:    https://github.com/intel-lab-lkp/linux/commits/Nick-Desaulniers/Makefile-extrawarn-enable-Wmissing-variable-declarations-for-W-1/20230808-005859
base:   52a93d39b17dc7eb98b6aa3edb93943248e03b2f
patch link:    https://lore.kernel.org/r/20230807-missing_proto-v2-1-3ae2e188bb0c%40google.com
patch subject: [PATCH v2] Makefile.extrawarn: enable -Wmissing-variable-declarations for W=1
config: riscv-randconfig-r014-20230807 (https://download.01.org/0day-ci/archive/20230808/202308081000.tTL1ElTr-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230808/202308081000.tTL1ElTr-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/202308081000.tTL1ElTr-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

   In file included from arch/riscv/kernel/asm-offsets.c:10:
   In file included from include/linux/mm.h:7:
   In file included from include/linux/gfp.h:7:
   In file included from include/linux/mmzone.h:8:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   2 warnings generated.
--
   In file included from arch/riscv/kernel/process.c:10:
   In file included from include/linux/cpu.h:17:
   In file included from include/linux/node.h:18:
   In file included from include/linux/device.h:15:
   In file included from include/linux/dev_printk.h:16:
   In file included from include/linux/ratelimit.h:6:
   In file included from include/linux/sched.h:12:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
>> arch/riscv/kernel/process.c:29:24: warning: no previous extern declaration for non-static variable 'gp_in_global' [-Wmissing-variable-declarations]
      29 | register unsigned long gp_in_global __asm__("gp");
         |                        ^
   arch/riscv/kernel/process.c:29:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      29 | register unsigned long gp_in_global __asm__("gp");
         |          ^
   3 warnings generated.
--
   In file included from arch/riscv/mm/init.c:10:
   In file included from include/linux/mm.h:7:
   In file included from include/linux/gfp.h:7:
   In file included from include/linux/mmzone.h:8:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
>> arch/riscv/mm/init.c:276:7: warning: no previous extern declaration for non-static variable 'trampoline_pg_dir' [-Wmissing-variable-declarations]
     276 | pgd_t trampoline_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
         |       ^
   arch/riscv/mm/init.c:276:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
     276 | pgd_t trampoline_pg_dir[PTRS_PER_PGD] __page_aligned_bss;
         | ^
>> arch/riscv/mm/init.c:279:7: warning: no previous extern declaration for non-static variable 'early_pg_dir' [-Wmissing-variable-declarations]
     279 | pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
         |       ^
   arch/riscv/mm/init.c:279:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
     279 | pgd_t early_pg_dir[PTRS_PER_PGD] __initdata __aligned(PAGE_SIZE);
         | ^
   4 warnings generated.
--
   drivers/char/ipmi/ipmi_si_platform.c:272:15: warning: cast to smaller integer type 'enum si_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
     272 |         io.si_type      = (enum si_type) match->data;
         |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/char/ipmi/ipmi_si_platform.c:13:
   In file included from include/linux/module.h:14:
   In file included from include/linux/buildid.h:5:
   In file included from include/linux/mm_types.h:8:
   In file included from include/linux/kref.h:16:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   3 warnings generated.
--
>> net/atm/mpc.c:123:21: warning: no previous extern declaration for non-static variable 'mpcs' [-Wmissing-variable-declarations]
     123 | struct mpoa_client *mpcs = NULL; /* FIXME */
         |                     ^
   net/atm/mpc.c:123:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
     123 | struct mpoa_client *mpcs = NULL; /* FIXME */
         | ^
   In file included from net/atm/mpc.c:6:
   In file included from include/linux/slab.h:16:
   In file included from include/linux/gfp.h:7:
   In file included from include/linux/mmzone.h:8:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   3 warnings generated.
--
>> net/llc/llc_conn.c:44:5: warning: no previous extern declaration for non-static variable 'sysctl_llc2_ack_timeout' [-Wmissing-variable-declarations]
      44 | int sysctl_llc2_ack_timeout = LLC2_ACK_TIME * HZ;
         |     ^
   net/llc/llc_conn.c:44:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      44 | int sysctl_llc2_ack_timeout = LLC2_ACK_TIME * HZ;
         | ^
>> net/llc/llc_conn.c:45:5: warning: no previous extern declaration for non-static variable 'sysctl_llc2_p_timeout' [-Wmissing-variable-declarations]
      45 | int sysctl_llc2_p_timeout = LLC2_P_TIME * HZ;
         |     ^
   net/llc/llc_conn.c:45:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      45 | int sysctl_llc2_p_timeout = LLC2_P_TIME * HZ;
         | ^
>> net/llc/llc_conn.c:46:5: warning: no previous extern declaration for non-static variable 'sysctl_llc2_rej_timeout' [-Wmissing-variable-declarations]
      46 | int sysctl_llc2_rej_timeout = LLC2_REJ_TIME * HZ;
         |     ^
   net/llc/llc_conn.c:46:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      46 | int sysctl_llc2_rej_timeout = LLC2_REJ_TIME * HZ;
         | ^
>> net/llc/llc_conn.c:47:5: warning: no previous extern declaration for non-static variable 'sysctl_llc2_busy_timeout' [-Wmissing-variable-declarations]
      47 | int sysctl_llc2_busy_timeout = LLC2_BUSY_TIME * HZ;
         |     ^
   net/llc/llc_conn.c:47:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      47 | int sysctl_llc2_busy_timeout = LLC2_BUSY_TIME * HZ;
         | ^
   In file included from net/llc/llc_conn.c:16:
   In file included from include/linux/slab.h:16:
   In file included from include/linux/gfp.h:7:
   In file included from include/linux/mmzone.h:8:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   6 warnings generated.
--
   drivers/i2c/busses/i2c-bcm-iproc.c:1039:3: warning: cast to smaller integer type 'enum bcm_iproc_i2c_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
    1039 |                 (enum bcm_iproc_i2c_type)of_device_get_match_data(&pdev->dev);
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/i2c/busses/i2c-bcm-iproc.c:4:
   In file included from include/linux/delay.h:23:
   In file included from include/linux/sched.h:12:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   3 warnings generated.
--
>> drivers/i2c/busses/i2c-amd756.c:286:20: warning: no previous extern declaration for non-static variable 'amd756_smbus' [-Wmissing-variable-declarations]
     286 | struct i2c_adapter amd756_smbus = {
         |                    ^
   drivers/i2c/busses/i2c-amd756.c:286:1: note: declare 'static' if the variable is not intended to be used outside of this translation unit
     286 | struct i2c_adapter amd756_smbus = {
         | ^
   In file included from drivers/i2c/busses/i2c-amd756.c:25:
   In file included from include/linux/module.h:14:
   In file included from include/linux/buildid.h:5:
   In file included from include/linux/mm_types.h:8:
   In file included from include/linux/kref.h:16:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   3 warnings generated.
--
   drivers/i2c/busses/i2c-rcar.c:1066:18: warning: cast to smaller integer type 'enum rcar_i2c_type' from 'const void *' [-Wvoid-pointer-to-enum-cast]
    1066 |         priv->devtype = (enum rcar_i2c_type)of_device_get_match_data(dev);
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/i2c/busses/i2c-rcar.c:15:
   In file included from include/linux/clk.h:14:
   In file included from include/linux/notifier.h:14:
   In file included from include/linux/mutex.h:14:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   3 warnings generated.
--
   scripts/genksyms/parse.y: warning: 9 shift/reduce conflicts [-Wconflicts-sr]
   scripts/genksyms/parse.y: warning: 5 reduce/reduce conflicts [-Wconflicts-rr]
   scripts/genksyms/parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples
   In file included from arch/riscv/kernel/asm-offsets.c:10:
   In file included from include/linux/mm.h:7:
   In file included from include/linux/gfp.h:7:
   In file included from include/linux/mmzone.h:8:
   In file included from include/linux/spinlock.h:56:
   In file included from include/linux/preempt.h:79:
   In file included from ./arch/riscv/include/generated/asm/preempt.h:1:
   In file included from include/asm-generic/preempt.h:5:
   In file included from include/linux/thread_info.h:23:
>> arch/riscv/include/asm/current.h:20:30: warning: no previous extern declaration for non-static variable 'riscv_current_is_tp' [-Wmissing-variable-declarations]
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |                              ^
   arch/riscv/include/asm/current.h:20:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      20 | register struct task_struct *riscv_current_is_tp __asm__("tp");
         |          ^
>> arch/riscv/include/asm/current.h:36:24: warning: no previous extern declaration for non-static variable 'current_stack_pointer' [-Wmissing-variable-declarations]
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |                        ^
   arch/riscv/include/asm/current.h:36:10: note: declare 'static' if the variable is not intended to be used outside of this translation unit
      36 | register unsigned long current_stack_pointer __asm__("sp");
         |          ^
   2 warnings generated.


vim +/riscv_current_is_tp +20 arch/riscv/include/asm/current.h

7db91e57a0acde Palmer Dabbelt 2017-07-10  19  
52e7c52d2ded59 Palmer Dabbelt 2020-02-27 @20  register struct task_struct *riscv_current_is_tp __asm__("tp");
52e7c52d2ded59 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded59 Palmer Dabbelt 2020-02-27  31  	return riscv_current_is_tp;
7db91e57a0acde Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde Palmer Dabbelt 2017-07-10  33  
7db91e57a0acde Palmer Dabbelt 2017-07-10  34  #define current get_current()
7db91e57a0acde Palmer Dabbelt 2017-07-10  35  
fdecfea09328b3 Kees Cook      2022-02-23 @36  register unsigned long current_stack_pointer __asm__("sp");
fdecfea09328b3 Kees Cook      2022-02-23  37  

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



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux