From: kernel test robot <lkp@intel.com>
Cc: oe-kbuild-all@lists.linux.dev, llvm@lists.linux.dev
Subject: kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag')
Date: Thu, 6 Feb 2025 10:11:45 +0800 [thread overview]
Message-ID: <202502061028.oJzUQ4PO-lkp@intel.com> (raw)
CC: linux-kernel@vger.kernel.org
TO: Hao Luo <haoluo@google.com>
CC: Alexei Starovoitov <ast@kernel.org>
Hi Hao,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 92514ef226f511f2ca1fb1b8752966097518edc0
commit: c25b2ae136039ffa820c26138ed4a5e5f3ab3841 bpf: Replace PTR_TO_XXX_OR_NULL with PTR_TO_XXX | PTR_MAYBE_NULL
date: 3 years, 2 months ago
config: arm-randconfig-004-20250120 (https://download.01.org/0day-ci/archive/20250206/202502061028.oJzUQ4PO-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250206/202502061028.oJzUQ4PO-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/202502061028.oJzUQ4PO-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from kernel/bpf/verifier.c:7:
In file included from include/linux/bpf-cgroup.h:5:
In file included from include/linux/bpf.h:20:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:1721:
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
559 | if (type & PTR_MAYBE_NULL) {
| ~~~~ ^ ~~~~~~~~~~~~~~
kernel/bpf/verifier.c:6602:43: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6602 | regs[BPF_REG_0].type = PTR_TO_MAP_VALUE | ret_flag;
| ~~~~~~~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6609:40: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6609 | regs[BPF_REG_0].type = PTR_TO_SOCKET | ret_flag;
| ~~~~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6612:45: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6612 | regs[BPF_REG_0].type = PTR_TO_SOCK_COMMON | ret_flag;
| ~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6615:42: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6615 | regs[BPF_REG_0].type = PTR_TO_TCP_SOCK | ret_flag;
| ~~~~~~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6618:37: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6618 | regs[BPF_REG_0].type = PTR_TO_MEM | ret_flag;
| ~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6638:38: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6638 | regs[BPF_REG_0].type = PTR_TO_MEM | ret_flag;
| ~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6641:41: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6641 | regs[BPF_REG_0].type = PTR_TO_BTF_ID | ret_flag;
| ~~~~~~~~~~~~~ ^ ~~~~~~~~
kernel/bpf/verifier.c:6649:40: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
6649 | regs[BPF_REG_0].type = PTR_TO_BTF_ID | ret_flag;
| ~~~~~~~~~~~~~ ^ ~~~~~~~~
>> kernel/bpf/verifier.c:7272:20: warning: bitwise operation between different enumeration types ('const enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
7272 | if (ptr_reg->type & PTR_MAYBE_NULL) {
| ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
11 warnings generated.
--
In file included from kernel/bpf/map_iter.c:3:
In file included from include/linux/bpf.h:20:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:1721:
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> kernel/bpf/map_iter.c:177:23: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
177 | PTR_TO_RDONLY_BUF | PTR_MAYBE_NULL },
| ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
kernel/bpf/map_iter.c:179:21: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
179 | PTR_TO_RDWR_BUF | PTR_MAYBE_NULL },
| ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
3 warnings generated.
--
In file included from net/core/sock_map.c:4:
In file included from include/linux/bpf.h:20:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:1721:
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> net/core/sock_map.c:1567:23: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
1567 | PTR_TO_RDONLY_BUF | PTR_MAYBE_NULL },
| ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
2 warnings generated.
--
In file included from net/core/bpf_sk_storage.c:8:
In file included from include/linux/bpf.h:20:
In file included from include/linux/kallsyms.h:13:
In file included from include/linux/mm.h:1721:
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> net/core/bpf_sk_storage.c:932:21: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion]
932 | PTR_TO_RDWR_BUF | PTR_MAYBE_NULL },
| ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
2 warnings generated.
vim +559 kernel/bpf/verifier.c
524
525 /* string representation of 'enum bpf_reg_type'
526 *
527 * Note that reg_type_str() can not appear more than once in a single verbose()
528 * statement.
529 */
530 static const char *reg_type_str(struct bpf_verifier_env *env,
531 enum bpf_reg_type type)
532 {
533 char postfix[16] = {0};
534 static const char * const str[] = {
535 [NOT_INIT] = "?",
536 [SCALAR_VALUE] = "inv",
537 [PTR_TO_CTX] = "ctx",
538 [CONST_PTR_TO_MAP] = "map_ptr",
539 [PTR_TO_MAP_VALUE] = "map_value",
540 [PTR_TO_STACK] = "fp",
541 [PTR_TO_PACKET] = "pkt",
542 [PTR_TO_PACKET_META] = "pkt_meta",
543 [PTR_TO_PACKET_END] = "pkt_end",
544 [PTR_TO_FLOW_KEYS] = "flow_keys",
545 [PTR_TO_SOCKET] = "sock",
546 [PTR_TO_SOCK_COMMON] = "sock_common",
547 [PTR_TO_TCP_SOCK] = "tcp_sock",
548 [PTR_TO_TP_BUFFER] = "tp_buffer",
549 [PTR_TO_XDP_SOCK] = "xdp_sock",
550 [PTR_TO_BTF_ID] = "ptr_",
551 [PTR_TO_PERCPU_BTF_ID] = "percpu_ptr_",
552 [PTR_TO_MEM] = "mem",
553 [PTR_TO_RDONLY_BUF] = "rdonly_buf",
554 [PTR_TO_RDWR_BUF] = "rdwr_buf",
555 [PTR_TO_FUNC] = "func",
556 [PTR_TO_MAP_KEY] = "map_key",
557 };
558
> 559 if (type & PTR_MAYBE_NULL) {
560 if (base_type(type) == PTR_TO_BTF_ID ||
561 base_type(type) == PTR_TO_PERCPU_BTF_ID)
562 strncpy(postfix, "or_null_", 16);
563 else
564 strncpy(postfix, "_or_null", 16);
565 }
566
567 snprintf(env->type_str_buf, TYPE_STR_BUF_LEN, "%s%s",
568 str[base_type(type)], postfix);
569 return env->type_str_buf;
570 }
571
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2025-02-06 2:12 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-06 2:11 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-02-19 12:34 kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag') kernel test robot
2024-12-29 9:29 kernel test robot
2024-12-27 19:46 kernel test robot
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=202502061028.oJzUQ4PO-lkp@intel.com \
--to=lkp@intel.com \
--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