Hi Herbert, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.7 next-20200611] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Herbert-Xu/iov_iter-Move-unnecessary-inclusion-of-crypto-hash-h/20200611-154742 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b29482fde649c72441d5478a4ea2c52c56d97a5e config: i386-randconfig-s001-20200611 (attached as .config) compiler: gcc-9 (Debian 9.3.0-13) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.1-250-g42323db3-dirty # save the attached .config to linux build tree make W=1 C=1 ARCH=i386 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> net/core/datagram.c:512:25: sparse: sparse: incorrect type in argument 6 (incompatible argument 3 (different base types)) @@ expected unsigned int ( *cb )( ... ) @@ got unsigned int ( * )( ... ) @@ >> net/core/datagram.c:512:25: sparse: expected unsigned int ( *cb )( ... ) >> net/core/datagram.c:512:25: sparse: got unsigned int ( * )( ... ) include/linux/spinlock.h:398:9: sparse: sparse: context imbalance in '__skb_free_datagram_locked' - unexpected unlock vim +512 net/core/datagram.c 950fcaecd5cc6c Sagi Grimberg 2018-12-03 497 65d69e2505bb64 Sagi Grimberg 2018-12-03 498 /** 65d69e2505bb64 Sagi Grimberg 2018-12-03 499 * skb_copy_and_hash_datagram_iter - Copy datagram to an iovec iterator 65d69e2505bb64 Sagi Grimberg 2018-12-03 500 * and update a hash. 65d69e2505bb64 Sagi Grimberg 2018-12-03 501 * @skb: buffer to copy 65d69e2505bb64 Sagi Grimberg 2018-12-03 502 * @offset: offset in the buffer to start copying from 65d69e2505bb64 Sagi Grimberg 2018-12-03 503 * @to: iovec iterator to copy to 65d69e2505bb64 Sagi Grimberg 2018-12-03 504 * @len: amount of data to copy from buffer to iovec 65d69e2505bb64 Sagi Grimberg 2018-12-03 505 * @hash: hash request to update 65d69e2505bb64 Sagi Grimberg 2018-12-03 506 */ 65d69e2505bb64 Sagi Grimberg 2018-12-03 507 int skb_copy_and_hash_datagram_iter(const struct sk_buff *skb, int offset, 65d69e2505bb64 Sagi Grimberg 2018-12-03 508 struct iov_iter *to, int len, 65d69e2505bb64 Sagi Grimberg 2018-12-03 509 struct ahash_request *hash) 65d69e2505bb64 Sagi Grimberg 2018-12-03 510 { 65d69e2505bb64 Sagi Grimberg 2018-12-03 511 return __skb_datagram_iter(skb, offset, to, len, true, 65d69e2505bb64 Sagi Grimberg 2018-12-03 @512 hash_and_copy_to_iter, hash); 65d69e2505bb64 Sagi Grimberg 2018-12-03 513 } 65d69e2505bb64 Sagi Grimberg 2018-12-03 514 EXPORT_SYMBOL(skb_copy_and_hash_datagram_iter); 65d69e2505bb64 Sagi Grimberg 2018-12-03 515 :::::: The code at line 512 was first introduced by commit :::::: 65d69e2505bb64f6a8d7f417f6e46e2a351174c6 datagram: introduce skb_copy_and_hash_datagram_iter helper :::::: TO: Sagi Grimberg :::::: CC: Christoph Hellwig --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org