net/netfilter/nft_synproxy.c:51:40: sparse: sparse: cast to non-scalar

kernel test robot <[email protected]>
Newsgroups org.kernel.vger.linux-kernel,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0d839570765118029aa8bf4a95444c6a11aacf85
commit: 36a3200575642846a96436d503d46544533bb943 netfilter: nft_synproxy: avoid possible data-race on update operation
date:   7 months ago
config: alpha-randconfig-r111-20260806 (https://download.01.org/0day-ci/archive/20260806/[email protected]/config)
compiler: alpha-linux-gcc (GCC) 8.5.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260806/[email protected]/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
| Fixes: 36a320057564 ("netfilter: nft_synproxy: avoid possible data-race on update operation")
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

sparse warnings: (new ones prefixed by >>)
>> net/netfilter/nft_synproxy.c:51:40: sparse: sparse: cast to non-scalar
>> net/netfilter/nft_synproxy.c:51:40: sparse: sparse: cast from non-scalar

vim +51 net/netfilter/nft_synproxy.c

    43	
    44	static void nft_synproxy_eval_v4(const struct nft_synproxy *priv,
    45					 struct nft_regs *regs,
    46					 const struct nft_pktinfo *pkt,
    47					 const struct tcphdr *tcp,
    48					 struct tcphdr *_tcph,
    49					 struct synproxy_options *opts)
    50	{
  > 51		struct nf_synproxy_info info = READ_ONCE(priv->info);
    52		struct net *net = nft_net(pkt);
    53		struct synproxy_net *snet = synproxy_pernet(net);
    54		struct sk_buff *skb = pkt->skb;
    55	
    56		if (tcp->syn) {
    57			/* Initial SYN from client */
    58			nft_synproxy_tcp_options(opts, tcp, snet, &info, priv);
    59			synproxy_send_client_synack(net, skb, tcp, opts);
    60			consume_skb(skb);
    61			regs->verdict.code = NF_STOLEN;
    62		} else if (tcp->ack) {
    63			/* ACK from client */
    64			if (synproxy_recv_client_ack(net, skb, tcp, opts,
    65						     ntohl(tcp->seq))) {
    66				consume_skb(skb);
    67				regs->verdict.code = NF_STOLEN;
    68			} else {
    69				regs->verdict.code = NF_DROP;
    70			}
    71		}
    72	}
    73	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.