* kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag')
@ 2024-12-27 19:46 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2024-12-27 19:46 UTC (permalink / raw)
Cc: oe-kbuild-all, llvm
CC: linux-kernel@vger.kernel.org
TO: Hao Luo <haoluo@google.com>
CC: Alexei Starovoitov <ast@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d6ef8b40d075c425f548002d2f35ae3f06e9cf96
commit: c25b2ae136039ffa820c26138ed4a5e5f3ab3841 bpf: Replace PTR_TO_XXX_OR_NULL with PTR_TO_XXX | PTR_MAYBE_NULL
date: 3 years ago
config: arm64-randconfig-003-20241220 (https://download.01.org/0day-ci/archive/20241228/202412280338.nu6P3FKl-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 9daf10ff8f29ba3a88a105aaa9d2379c21b77d35)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241228/202412280338.nu6P3FKl-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/202412280338.nu6P3FKl-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:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
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_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> 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) {
| ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
15 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:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
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_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> 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 },
| ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
7 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
^ permalink raw reply [flat|nested] 4+ messages in thread
* kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag')
@ 2024-12-29 9:29 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2024-12-29 9:29 UTC (permalink / raw)
Cc: oe-kbuild-all, llvm
CC: linux-kernel@vger.kernel.org
TO: Hao Luo <haoluo@google.com>
CC: Alexei Starovoitov <ast@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 059dd502b263d8a4e2a84809cf1068d6a3905e6f
commit: c25b2ae136039ffa820c26138ed4a5e5f3ab3841 bpf: Replace PTR_TO_XXX_OR_NULL with PTR_TO_XXX | PTR_MAYBE_NULL
date: 3 years ago
config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20241229/202412291720.pND7BN8r-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 9daf10ff8f29ba3a88a105aaa9d2379c21b77d35)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241229/202412291720.pND7BN8r-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/202412291720.pND7BN8r-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
^ permalink raw reply [flat|nested] 4+ messages in thread
* kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag')
@ 2025-02-06 2:11 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-02-06 2:11 UTC (permalink / raw)
Cc: oe-kbuild-all, llvm
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* kernel/bpf/verifier.c:559:11: warning: bitwise operation between different enumeration types ('enum bpf_reg_type' and 'enum bpf_type_flag')
@ 2025-02-19 12:34 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2025-02-19 12:34 UTC (permalink / raw)
Cc: oe-kbuild-all, llvm
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: 6537cfb395f352782918d8ee7b7f10ba2cc3cbf2
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/20250219/202502192059.QS52n12o-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/20250219/202502192059.QS52n12o-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/202502192059.QS52n12o-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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-02-19 12:34 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-06 2:11 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
-- strict thread matches above, loose matches on Subject: below --
2025-02-19 12:34 kernel test robot
2024-12-29 9:29 kernel test robot
2024-12-27 19:46 kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox