Re: [PATCH] fprobe: Add unregister_fprobe_sync() for synchronous unregistration

kernel test robot
2026-05-03T03:25:59Z

Hi Masami,

kernel test robot noticed the following build errors:

[auto build test ERROR on trace/for-next]
[cannot apply to linus/master v7.1-rc1 next-20260430]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Masami-Hiramatsu-Google/fprobe-Add-unregister_fprobe_sync-for-synchronous-unregistration/20260427-214258
base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next
patch link: https://lore.kernel.org/r/177729179863.401400.6063130067239479972.stgit%40mhiramat.tok.corp.google.com
patch subject: [PATCH] fprobe: Add unregister_fprobe_sync() for synchronous unregistration
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20260503/202605031133.LJkoT4xo-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260503/202605031133.LJkoT4xo-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/202605031133.LJkoT4xo-lkp@intel.com/

All errors (new ones prefixed by >>):

>> kernel/trace/fprobe.c:983:14: error: call to undeclared function 'fprobe_registered'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
983 | if (!fp || !fprobe_registered(fp))
| ^
>> kernel/trace/fprobe.c:986:8: error: call to undeclared function 'unregister_fprobe_nolock'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
986 | ret = unregister_fprobe_nolock(fp);
| ^
kernel/trace/fprobe.c:986:8: note: did you mean 'unregister_fprobe_sync'?
kernel/trace/fprobe.c:978:5: note: 'unregister_fprobe_sync' declared here
978 | int unregister_fprobe_sync(struct fprobe *fp)
| ^
979 | {
980 | int ret;
981 |
982 | guard(mutex)(&fprobe_mutex);
983 | if (!fp || !fprobe_registered(fp))
984 | return -EINVAL;
985 |
986 | ret = unregister_fprobe_nolock(fp);
| ~~~~~~~~~~~~~~~~~~~~~~~~
| unregister_fprobe_sync
2 errors generated.

vim +/fprobe_registered +983 kernel/trace/fprobe.c

967
968 /**
969 * unregister_fprobe_sync() - Unregister fprobe synchronously with RCU grace period.
970 * @fp: A fprobe data structure to be unregistered.
971 *
972 * Unregister fprobe (and remove ftrace hooks from the function entries) and
973 * wait for the RCU grace period to finish. This is useful for preventing
974 * the fprobe from being used after it is unregistered.
975 *
976 * Return 0 if @fp is unregistered successfully, -errno if not.
977 */
978 int unregister_fprobe_sync(struct fprobe *fp)
979 {
980 int ret;
981
982 guard(mutex)(&fprobe_mutex);
> 983 if (!fp || !fprobe_registered(fp))
984 return -EINVAL;
985
> 986 ret = unregister_fprobe_nolock(fp);
987 if (ret)
988 return ret;
989
990 synchronize_rcu();
991 return 0;
992 }
993 EXPORT_SYMBOL_GPL(unregister_fprobe_sync);
994

--
0-DAY CI Kernel Test Service