From: kernel test robot <lkp@intel.com>
To: Jiri Olsa <jolsa@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [jolsa-perf:bpf/optimized_usdt_1 19/20] kernel/seccomp.c:769:2: error: expected identifier or '('
Date: Sun, 9 Mar 2025 17:04:06 +0800 [thread overview]
Message-ID: <202503091607.0YyJJrwm-lkp@intel.com> (raw)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/optimized_usdt_1
head: c63f2f86076da544bc726c0e4dc9cb92f556b3d5
commit: 637a4f5485c20fbeb03d920745ae345b81406600 [19/20] seccomp: passthrough uprobe systemcall without filtering
config: riscv-randconfig-001-20250309 (https://download.01.org/0day-ci/archive/20250309/202503091607.0YyJJrwm-lkp@intel.com/config)
compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250309/202503091607.0YyJJrwm-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/202503091607.0YyJJrwm-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
kernel/seccomp.c:747:7: warning: unused variable 'op_res' [-Wunused-variable]
bool op_res;
^
kernel/seccomp.c:746:15: warning: unused variable 'pc' [-Wunused-variable]
unsigned int pc;
^
kernel/seccomp.c:745:15: warning: unused variable 'reg_value' [-Wunused-variable]
unsigned int reg_value = 0;
^
>> kernel/seccomp.c:767:2: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
>> kernel/seccomp.c:769:2: error: expected identifier or '('
for (pc = 0; pc < fprog->len; pc++) {
^
kernel/seccomp.c:828:2: error: expected identifier or '('
WARN_ON(1);
^
include/asm-generic/bug.h:122:29: note: expanded from macro 'WARN_ON'
#define WARN_ON(condition) ({ \
^
>> kernel/seccomp.c:828:2: error: expected ')'
include/asm-generic/bug.h:122:29: note: expanded from macro 'WARN_ON'
#define WARN_ON(condition) ({ \
^
kernel/seccomp.c:828:2: note: to match this '('
include/asm-generic/bug.h:122:28: note: expanded from macro 'WARN_ON'
#define WARN_ON(condition) ({ \
^
kernel/seccomp.c:829:2: error: expected identifier or '('
return false;
^
>> kernel/seccomp.c:830:1: error: extraneous closing brace ('}')
}
^
4 warnings and 5 errors generated.
vim +769 kernel/seccomp.c
c8bee430dc52cf Kees Cook 2014-06-27 734
8e01b51a31a1e0 YiFei Zhu 2020-10-11 735 #ifdef SECCOMP_ARCH_NATIVE
8e01b51a31a1e0 YiFei Zhu 2020-10-11 736 /**
8e01b51a31a1e0 YiFei Zhu 2020-10-11 737 * seccomp_is_const_allow - check if filter is constant allow with given data
8e01b51a31a1e0 YiFei Zhu 2020-10-11 738 * @fprog: The BPF programs
8e01b51a31a1e0 YiFei Zhu 2020-10-11 739 * @sd: The seccomp data to check against, only syscall number and arch
8e01b51a31a1e0 YiFei Zhu 2020-10-11 740 * number are considered constant.
8e01b51a31a1e0 YiFei Zhu 2020-10-11 741 */
8e01b51a31a1e0 YiFei Zhu 2020-10-11 742 static bool seccomp_is_const_allow(struct sock_fprog_kern *fprog,
8e01b51a31a1e0 YiFei Zhu 2020-10-11 743 struct seccomp_data *sd)
8e01b51a31a1e0 YiFei Zhu 2020-10-11 744 {
8e01b51a31a1e0 YiFei Zhu 2020-10-11 745 unsigned int reg_value = 0;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 746 unsigned int pc;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 747 bool op_res;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 748
8e01b51a31a1e0 YiFei Zhu 2020-10-11 749 if (WARN_ON_ONCE(!fprog))
8e01b51a31a1e0 YiFei Zhu 2020-10-11 750 return false;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 751
cf6cb56ef24410 Eyal Birger 2025-02-02 752 /* Our single exception to filtering. */
637a4f5485c20f Jiri Olsa 2025-03-08 753 #if defined __NR_uretprobe || defined __NR_uprobe
cf6cb56ef24410 Eyal Birger 2025-02-02 754 #ifdef SECCOMP_ARCH_COMPAT
cf6cb56ef24410 Eyal Birger 2025-02-02 755 if (sd->arch == SECCOMP_ARCH_NATIVE)
cf6cb56ef24410 Eyal Birger 2025-02-02 756 #endif
637a4f5485c20f Jiri Olsa 2025-03-08 757 {
637a4f5485c20f Jiri Olsa 2025-03-08 758 #ifdef __NR_uretprobe
cf6cb56ef24410 Eyal Birger 2025-02-02 759 if (sd->nr == __NR_uretprobe)
cf6cb56ef24410 Eyal Birger 2025-02-02 760 return true;
cf6cb56ef24410 Eyal Birger 2025-02-02 761 #endif
637a4f5485c20f Jiri Olsa 2025-03-08 762 #ifdef __NR_uprobe
637a4f5485c20f Jiri Olsa 2025-03-08 763 if (sd->nr == __NR_uprobe)
637a4f5485c20f Jiri Olsa 2025-03-08 764 return true;
637a4f5485c20f Jiri Olsa 2025-03-08 765 #endif
637a4f5485c20f Jiri Olsa 2025-03-08 766 #endif
637a4f5485c20f Jiri Olsa 2025-03-08 @767 }
cf6cb56ef24410 Eyal Birger 2025-02-02 768
8e01b51a31a1e0 YiFei Zhu 2020-10-11 @769 for (pc = 0; pc < fprog->len; pc++) {
8e01b51a31a1e0 YiFei Zhu 2020-10-11 770 struct sock_filter *insn = &fprog->filter[pc];
8e01b51a31a1e0 YiFei Zhu 2020-10-11 771 u16 code = insn->code;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 772 u32 k = insn->k;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 773
8e01b51a31a1e0 YiFei Zhu 2020-10-11 774 switch (code) {
8e01b51a31a1e0 YiFei Zhu 2020-10-11 775 case BPF_LD | BPF_W | BPF_ABS:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 776 switch (k) {
8e01b51a31a1e0 YiFei Zhu 2020-10-11 777 case offsetof(struct seccomp_data, nr):
8e01b51a31a1e0 YiFei Zhu 2020-10-11 778 reg_value = sd->nr;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 779 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 780 case offsetof(struct seccomp_data, arch):
8e01b51a31a1e0 YiFei Zhu 2020-10-11 781 reg_value = sd->arch;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 782 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 783 default:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 784 /* can't optimize (non-constant value load) */
8e01b51a31a1e0 YiFei Zhu 2020-10-11 785 return false;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 786 }
8e01b51a31a1e0 YiFei Zhu 2020-10-11 787 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 788 case BPF_RET | BPF_K:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 789 /* reached return with constant values only, check allow */
8e01b51a31a1e0 YiFei Zhu 2020-10-11 790 return k == SECCOMP_RET_ALLOW;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 791 case BPF_JMP | BPF_JA:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 792 pc += insn->k;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 793 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 794 case BPF_JMP | BPF_JEQ | BPF_K:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 795 case BPF_JMP | BPF_JGE | BPF_K:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 796 case BPF_JMP | BPF_JGT | BPF_K:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 797 case BPF_JMP | BPF_JSET | BPF_K:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 798 switch (BPF_OP(code)) {
8e01b51a31a1e0 YiFei Zhu 2020-10-11 799 case BPF_JEQ:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 800 op_res = reg_value == k;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 801 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 802 case BPF_JGE:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 803 op_res = reg_value >= k;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 804 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 805 case BPF_JGT:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 806 op_res = reg_value > k;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 807 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 808 case BPF_JSET:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 809 op_res = !!(reg_value & k);
8e01b51a31a1e0 YiFei Zhu 2020-10-11 810 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 811 default:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 812 /* can't optimize (unknown jump) */
8e01b51a31a1e0 YiFei Zhu 2020-10-11 813 return false;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 814 }
8e01b51a31a1e0 YiFei Zhu 2020-10-11 815
8e01b51a31a1e0 YiFei Zhu 2020-10-11 816 pc += op_res ? insn->jt : insn->jf;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 817 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 818 case BPF_ALU | BPF_AND | BPF_K:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 819 reg_value &= k;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 820 break;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 821 default:
8e01b51a31a1e0 YiFei Zhu 2020-10-11 822 /* can't optimize (unknown insn) */
8e01b51a31a1e0 YiFei Zhu 2020-10-11 823 return false;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 824 }
8e01b51a31a1e0 YiFei Zhu 2020-10-11 825 }
8e01b51a31a1e0 YiFei Zhu 2020-10-11 826
8e01b51a31a1e0 YiFei Zhu 2020-10-11 827 /* ran off the end of the filter?! */
8e01b51a31a1e0 YiFei Zhu 2020-10-11 @828 WARN_ON(1);
8e01b51a31a1e0 YiFei Zhu 2020-10-11 829 return false;
8e01b51a31a1e0 YiFei Zhu 2020-10-11 @830 }
8e01b51a31a1e0 YiFei Zhu 2020-10-11 831
:::::: The code at line 769 was first introduced by commit
:::::: 8e01b51a31a1e08e2c3e8fcc0ef6790441be2f61 seccomp/cache: Add "emulator" to check if filter is constant allow
:::::: TO: YiFei Zhu <yifeifz2@illinois.edu>
:::::: CC: Kees Cook <keescook@chromium.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-03-09 9:04 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202503091607.0YyJJrwm-lkp@intel.com \
--to=lkp@intel.com \
--cc=jolsa@kernel.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox