tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.csum-x86 head: f6c1313680f1d2319d2061c63abeb76f820319b8 commit: 90c2bfd06916ac7c05129b36683bfd3424d8e0e4 [4/18] Fix the csum_and_copy_..._user() idiocy config: x86_64-randconfig-123-20231124 (https://download.01.org/0day-ci/archive/20231125/202311250023.ySjyjo9L-lkp@xxxxxxxxx/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231125/202311250023.ySjyjo9L-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/202311250023.ySjyjo9L-lkp@xxxxxxxxx/ sparse warnings: (new ones prefixed by >>) >> net/core/datagram.c:745:55: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __wsum [usertype] v @@ got restricted __wsum_fault [usertype] next @@ net/core/datagram.c:745:55: sparse: expected restricted __wsum [usertype] v net/core/datagram.c:745:55: sparse: got restricted __wsum_fault [usertype] next >> net/core/datagram.c:745:54: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __wsum [usertype] csum2 @@ got restricted __wsum_fault @@ net/core/datagram.c:745:54: sparse: expected restricted __wsum [usertype] csum2 net/core/datagram.c:745:54: sparse: got restricted __wsum_fault net/core/datagram.c: note: in included file (through include/linux/skbuff.h, include/net/net_namespace.h, include/linux/inet.h): include/net/checksum.h:36:17: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __wsum_fault @@ got restricted __wsum [usertype] @@ include/net/checksum.h:36:17: sparse: expected restricted __wsum_fault include/net/checksum.h:36:17: sparse: got restricted __wsum [usertype] -- >> net/core/skbuff.c:6971:55: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __wsum [usertype] v @@ got restricted __wsum_fault [usertype] next @@ net/core/skbuff.c:6971:55: sparse: expected restricted __wsum [usertype] v net/core/skbuff.c:6971:55: sparse: got restricted __wsum_fault [usertype] next >> net/core/skbuff.c:6971:54: sparse: sparse: incorrect type in argument 2 (different base types) @@ expected restricted __wsum [usertype] csum2 @@ got restricted __wsum_fault @@ net/core/skbuff.c:6971:54: sparse: expected restricted __wsum [usertype] csum2 net/core/skbuff.c:6971:54: sparse: got restricted __wsum_fault net/core/skbuff.c: note: in included file (through include/net/net_namespace.h, include/linux/inet.h): include/linux/skbuff.h:2703:28: sparse: sparse: self-comparison always evaluates to false net/core/skbuff.c: note: in included file (through include/linux/skbuff.h, include/net/net_namespace.h, include/linux/inet.h): include/net/checksum.h:36:17: sparse: sparse: incorrect type in return expression (different base types) @@ expected restricted __wsum_fault @@ got restricted __wsum [usertype] @@ include/net/checksum.h:36:17: sparse: expected restricted __wsum_fault include/net/checksum.h:36:17: sparse: got restricted __wsum [usertype] vim +745 net/core/datagram.c 737 738 static __always_inline 739 size_t copy_to_user_iter_csum(void __user *iter_to, size_t progress, 740 size_t len, void *from, void *priv2) 741 { 742 __wsum *csum = priv2; 743 __wsum_fault next = csum_and_copy_to_user(from + progress, iter_to, len); 744 > 745 *csum = csum_block_add(*csum, from_wsum_fault(next), progress); 746 return !wsum_is_fault(next) ? 0 : len; 747 } 748 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki