Hi Phil, kernel test robot noticed the following build warnings: [auto build test WARNING on netfilter-nf/main] url: https://github.com/intel-lab-lkp/linux/commits/Phil-Sutter/netfilter-nf_tables-Fix-entries-val-in-rule-reset-audit-log/20230908-082530 base: git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git main patch link: https://lore.kernel.org/r/20230908002229.1409-2-phil%40nwl.cc patch subject: [nf PATCH 1/2] netfilter: nf_tables: Fix entries val in rule reset audit log config: mips-randconfig-r002-20230908 (https://download.01.org/0day-ci/archive/20230908/202309081138.IpMoJwFy-lkp@xxxxxxxxx/config) compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230908/202309081138.IpMoJwFy-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/202309081138.IpMoJwFy-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> net/netfilter/nf_tables_api.c:3536:11: warning: comparison of distinct pointer types ('typeof (idx) *' (aka 'unsigned int *') and 'typeof (cb->args[0]) *' (aka 'long *')) [-Wcompare-distinct-pointer-types] 3536 | s_idx = max(idx, cb->args[0]); | ^~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:74:19: note: expanded from macro 'max' 74 | #define max(x, y) __careful_cmp(x, y, >) | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp' 36 | __builtin_choose_expr(__safe_cmp(x, y), \ | ^~~~~~~~~~~~~~~~ include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp' 26 | (__typecheck(x, y) && __no_side_effects(x, y)) | ^~~~~~~~~~~~~~~~~ include/linux/minmax.h:20:28: note: expanded from macro '__typecheck' 20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) | ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~ 1 warning generated. vim +3536 net/netfilter/nf_tables_api.c 3486 3487 static int nf_tables_dump_rules(struct sk_buff *skb, 3488 struct netlink_callback *cb) 3489 { 3490 const struct nfgenmsg *nfmsg = nlmsg_data(cb->nlh); 3491 const struct nft_rule_dump_ctx *ctx = cb->data; 3492 struct nft_table *table; 3493 const struct nft_chain *chain; 3494 unsigned int idx = 0, s_idx; 3495 struct net *net = sock_net(skb->sk); 3496 int family = nfmsg->nfgen_family; 3497 struct nftables_pernet *nft_net; 3498 bool reset = false; 3499 int ret; 3500 3501 if (NFNL_MSG_TYPE(cb->nlh->nlmsg_type) == NFT_MSG_GETRULE_RESET) 3502 reset = true; 3503 3504 rcu_read_lock(); 3505 nft_net = nft_pernet(net); 3506 cb->seq = READ_ONCE(nft_net->base_seq); 3507 3508 list_for_each_entry_rcu(table, &nft_net->tables, list) { 3509 if (family != NFPROTO_UNSPEC && family != table->family) 3510 continue; 3511 3512 if (ctx && ctx->table && strcmp(ctx->table, table->name) != 0) 3513 continue; 3514 3515 if (ctx && ctx->table && ctx->chain) { 3516 struct rhlist_head *list, *tmp; 3517 3518 list = rhltable_lookup(&table->chains_ht, ctx->chain, 3519 nft_chain_ht_params); 3520 if (!list) 3521 goto done; 3522 3523 rhl_for_each_entry_rcu(chain, tmp, list, rhlhead) { 3524 if (!nft_is_active(net, chain)) 3525 continue; 3526 __nf_tables_dump_rules(skb, &idx, 3527 cb, table, chain, reset); 3528 break; 3529 } 3530 if (reset && idx > cb->args[0]) 3531 audit_log_rule_reset(table, cb->seq, 3532 idx - cb->args[0]); 3533 goto done; 3534 } 3535 > 3536 s_idx = max(idx, cb->args[0]); 3537 list_for_each_entry_rcu(chain, &table->chains, list) { 3538 ret = __nf_tables_dump_rules(skb, &idx, 3539 cb, table, chain, reset); 3540 if (ret) 3541 break; 3542 } 3543 if (reset && idx > s_idx) 3544 audit_log_rule_reset(table, cb->seq, idx - s_idx); 3545 3546 if ((ctx && ctx->table) || ret) 3547 break; 3548 } 3549 done: 3550 rcu_read_unlock(); 3551 3552 cb->args[0] = idx; 3553 return skb->len; 3554 } 3555 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki