Hi Christophe, I love your patch! Perhaps something to improve: [auto build test WARNING on net-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Christophe-Leroy/net-Use-csum_replace_-and-csum_sub-helpers-instead-of-opencoding/20220217-234555 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git c8b441d2fbd0e005541c7363fd5346971b6febcb config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220422/202204221937.SbSpkzXW-lkp@xxxxxxxxx/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/intel-lab-lkp/linux/commit/cec9ed7cf59fe6dafcec0a30811024d22fad8cbd git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Christophe-Leroy/net-Use-csum_replace_-and-csum_sub-helpers-instead-of-opencoding/20220217-234555 git checkout cec9ed7cf59fe6dafcec0a30811024d22fad8cbd # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) net/netfilter/nft_payload.c: note: in included file (through include/net/sctp/sctp.h, include/net/sctp/checksum.h): include/net/sctp/structs.h:335:41: sparse: sparse: array of flexible structures >> net/netfilter/nft_payload.c:560:28: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __be32 [usertype] from @@ got restricted __wsum [usertype] fsum @@ net/netfilter/nft_payload.c:560:28: sparse: expected restricted __be32 [usertype] from net/netfilter/nft_payload.c:560:28: sparse: got restricted __wsum [usertype] fsum >> net/netfilter/nft_payload.c:560:34: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __be32 [usertype] to @@ got restricted __wsum [usertype] tsum @@ net/netfilter/nft_payload.c:560:34: sparse: expected restricted __be32 [usertype] to net/netfilter/nft_payload.c:560:34: sparse: got restricted __wsum [usertype] tsum >> net/netfilter/nft_payload.c:560:28: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __be32 [usertype] from @@ got restricted __wsum [usertype] fsum @@ net/netfilter/nft_payload.c:560:28: sparse: expected restricted __be32 [usertype] from net/netfilter/nft_payload.c:560:28: sparse: got restricted __wsum [usertype] fsum >> net/netfilter/nft_payload.c:560:34: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __be32 [usertype] to @@ got restricted __wsum [usertype] tsum @@ net/netfilter/nft_payload.c:560:34: sparse: expected restricted __be32 [usertype] to net/netfilter/nft_payload.c:560:34: sparse: got restricted __wsum [usertype] tsum vim +560 net/netfilter/nft_payload.c 557 558 static inline void nft_csum_replace(__sum16 *sum, __wsum fsum, __wsum tsum) 559 { > 560 csum_replace4(sum, fsum, tsum); 561 if (*sum == 0) 562 *sum = CSUM_MANGLED_0; 563 } 564 -- 0-DAY CI Kernel Test Service https://01.org/lkp