Hi Andrii, kernel test robot noticed the following build warnings: [auto build test WARNING on next-20240624] [also build test WARNING on v6.10-rc5] [cannot apply to perf-tools-next/perf-tools-next tip/perf/core perf-tools/perf-tools linus/master acme/perf/core v6.10-rc5 v6.10-rc4 v6.10-rc3] [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/Andrii-Nakryiko/uprobes-update-outdated-comment/20240626-001728 base: next-20240624 patch link: https://lore.kernel.org/r/20240625002144.3485799-5-andrii%40kernel.org patch subject: [PATCH 04/12] uprobes: revamp uprobe refcounting and lifetime management config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20240626/202406261300.ebbfM0XJ-lkp@xxxxxxxxx/config) compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240626/202406261300.ebbfM0XJ-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/202406261300.ebbfM0XJ-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> kernel/events/uprobes.c:638: warning: Function parameter or struct member 'uprobe' not described in '__get_uprobe' >> kernel/events/uprobes.c:638: warning: expecting prototype for Caller has to make sure that(). Prototype was for __get_uprobe() instead vim +638 kernel/events/uprobes.c b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 625 b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 626 /** b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 627 * Caller has to make sure that: b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 628 * a) either uprobe's refcnt is positive before this call; b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 629 * b) or uprobes_treelock is held (doesn't matter if for read or write), b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 630 * preventing uprobe's destructor from removing it from uprobes_tree. b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 631 * b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 632 * In the latter case, uprobe's destructor will "resurrect" uprobe instance if b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 633 * it detects that its refcount went back to being positive again inbetween it b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 634 * dropping to zero at some point and (potentially delayed) destructor b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 635 * callback actually running. b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 636 */ b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 637 static struct uprobe *__get_uprobe(struct uprobe *uprobe) f231722a2b27ee Oleg Nesterov 2015-07-21 @638 { b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 639 s64 v; b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 640 b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 641 v = atomic64_add_return(UPROBE_REFCNT_GET, &uprobe->ref); b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 642 b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 643 /* b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 644 * If the highest bit is set, we need to clear it. If cmpxchg() fails, b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 645 * we don't retry because there is another CPU that just managed to b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 646 * update refcnt and will attempt the same "fix up". Eventually one of b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 647 * them will succeed to clear highset bit. b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 648 */ b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 649 if (unlikely(v < 0)) b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 650 (void)atomic64_cmpxchg(&uprobe->ref, v, v & ~(1ULL << 63)); b9adadbcb8dfc8 Andrii Nakryiko 2024-06-24 651 f231722a2b27ee Oleg Nesterov 2015-07-21 652 return uprobe; f231722a2b27ee Oleg Nesterov 2015-07-21 653 } f231722a2b27ee Oleg Nesterov 2015-07-21 654 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki