All of lore.kernel.org
 help / color / mirror / Atom feed
* [openeuler:openEuler-1.0-LTS 605/605] kernel/livepatch/core.c:75:16: warning: no previous prototype for function 'klp_check_patch_kprobed'
@ 2024-12-01 14:04 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-12-01 14:04 UTC (permalink / raw)
  To: kernel, Yang Yingliang; +Cc: oe-kbuild-all

Hi Cheng,

FYI, the error/warning still remains.

tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   b5504db0db8375a77340b5bb54c17cfb75d3c754
commit: 7e2ab91ea07673f855f16b54b7c6e6853b2efc1c [605/605] livepatch/x86: support livepatch without ftrace
config: x86_64-randconfig-073-20240521 (https://download.01.org/0day-ci/archive/20241201/202412012256.7lliU69f-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241201/202412012256.7lliU69f-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/202412012256.7lliU69f-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> kernel/livepatch/core.c:75:16: warning: no previous prototype for function 'klp_check_patch_kprobed' [-Wmissing-prototypes]
      75 | struct kprobe *klp_check_patch_kprobed(struct klp_patch *patch)
         |                ^
   kernel/livepatch/core.c:75:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      75 | struct kprobe *klp_check_patch_kprobed(struct klp_patch *patch)
         | ^
         | static 
   kernel/livepatch/core.c:402:5: warning: no previous prototype for function 'klp_try_disable_patch' [-Wmissing-prototypes]
     402 | int klp_try_disable_patch(void *data)
         |     ^
   kernel/livepatch/core.c:402:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     402 | int klp_try_disable_patch(void *data)
         | ^
         | static 
   kernel/livepatch/core.c:441:13: warning: no previous prototype for function 'arch_klp_code_modify_prepare' [-Wmissing-prototypes]
     441 | void __weak arch_klp_code_modify_prepare(void)
         |             ^
   kernel/livepatch/core.c:441:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     441 | void __weak arch_klp_code_modify_prepare(void)
         | ^
         | static 
   kernel/livepatch/core.c:445:13: warning: no previous prototype for function 'arch_klp_code_modify_post_process' [-Wmissing-prototypes]
     445 | void __weak arch_klp_code_modify_post_process(void)
         |             ^
   kernel/livepatch/core.c:445:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     445 | void __weak arch_klp_code_modify_post_process(void)
         | ^
         | static 
   kernel/livepatch/core.c:617:5: warning: no previous prototype for function 'klp_try_enable_patch' [-Wmissing-prototypes]
     617 | int klp_try_enable_patch(void *data)
         |     ^
   kernel/livepatch/core.c:617:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     617 | int klp_try_enable_patch(void *data)
         | ^
         | static 
   kernel/livepatch/core.c:1013:12: warning: no previous prototype for function 'arch_klp_func_can_patch' [-Wmissing-prototypes]
    1013 | int __weak arch_klp_func_can_patch(struct klp_func *func)
         |            ^
   kernel/livepatch/core.c:1013:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1013 | int __weak arch_klp_func_can_patch(struct klp_func *func)
         | ^
         | static 
   6 warnings generated.


vim +/klp_check_patch_kprobed +75 kernel/livepatch/core.c

7e8d223e3ef865 Cheng Jian 2019-01-28   69  
c8f9d7a3aae362 Cheng Jian 2019-01-28   70  #ifdef CONFIG_LIVEPATCH_RESTRICT_KPROBE
c8f9d7a3aae362 Cheng Jian 2019-01-28   71  /*
c8f9d7a3aae362 Cheng Jian 2019-01-28   72   * Check whether a function has been registered with kprobes before patched.
c8f9d7a3aae362 Cheng Jian 2019-01-28   73   * We can't patched this function util we unregisted the kprobes.
c8f9d7a3aae362 Cheng Jian 2019-01-28   74   */
c8f9d7a3aae362 Cheng Jian 2019-01-28  @75  struct kprobe *klp_check_patch_kprobed(struct klp_patch *patch)
c8f9d7a3aae362 Cheng Jian 2019-01-28   76  {
c8f9d7a3aae362 Cheng Jian 2019-01-28   77  	struct klp_object *obj;
c8f9d7a3aae362 Cheng Jian 2019-01-28   78  	struct klp_func *func;
c8f9d7a3aae362 Cheng Jian 2019-01-28   79  	struct kprobe *kp;
c8f9d7a3aae362 Cheng Jian 2019-01-28   80  	int i;
c8f9d7a3aae362 Cheng Jian 2019-01-28   81  
c8f9d7a3aae362 Cheng Jian 2019-01-28   82  	klp_for_each_object(patch, obj) {
c8f9d7a3aae362 Cheng Jian 2019-01-28   83  		klp_for_each_func(obj, func) {
c8f9d7a3aae362 Cheng Jian 2019-01-28   84  			for (i = 0; i < func->old_size; i++) {
c8f9d7a3aae362 Cheng Jian 2019-01-28   85  				kp = get_kprobe((void *)func->old_addr + i);
c8f9d7a3aae362 Cheng Jian 2019-01-28   86  				if (kp) {
c8f9d7a3aae362 Cheng Jian 2019-01-28   87  					pr_err("func %s has been probed, (un)patch failed\n",
c8f9d7a3aae362 Cheng Jian 2019-01-28   88  						func->old_name);
c8f9d7a3aae362 Cheng Jian 2019-01-28   89  					return kp;
c8f9d7a3aae362 Cheng Jian 2019-01-28   90  				}
c8f9d7a3aae362 Cheng Jian 2019-01-28   91  			}
c8f9d7a3aae362 Cheng Jian 2019-01-28   92  		}
c8f9d7a3aae362 Cheng Jian 2019-01-28   93  	}
c8f9d7a3aae362 Cheng Jian 2019-01-28   94  
c8f9d7a3aae362 Cheng Jian 2019-01-28   95  	return NULL;
c8f9d7a3aae362 Cheng Jian 2019-01-28   96  }
c8f9d7a3aae362 Cheng Jian 2019-01-28   97  #else
c8f9d7a3aae362 Cheng Jian 2019-01-28   98  static inline struct kprobe *klp_check_patch_kprobed(struct klp_patch *patch)
c8f9d7a3aae362 Cheng Jian 2019-01-28   99  {
c8f9d7a3aae362 Cheng Jian 2019-01-28  100  	return NULL;
c8f9d7a3aae362 Cheng Jian 2019-01-28  101  }
c8f9d7a3aae362 Cheng Jian 2019-01-28  102  #endif /* CONFIG_LIVEPATCH_RESTRICT_KPROBE */
c8f9d7a3aae362 Cheng Jian 2019-01-28  103  

:::::: The code at line 75 was first introduced by commit
:::::: c8f9d7a3aae362482f81ba7c6819d410d66619ab livepatch/core: Restrict livepatch patched/unpatched when plant kprobe

:::::: TO: Cheng Jian <cj.chengjian@huawei.com>
:::::: CC: Xie XiuQi <xiexiuqi@huawei.com>

-- 
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:[~2024-12-01 14:04 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-01 14:04 [openeuler:openEuler-1.0-LTS 605/605] kernel/livepatch/core.c:75:16: warning: no previous prototype for function 'klp_check_patch_kprobed' 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.