* Re: [PATCH bpf-next 1/5] net: checksum: move from32to16() to generic header
[not found] <20241021122112.101513-2-puranjay@kernel.org>
@ 2024-10-22 13:50 ` kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-10-22 13:50 UTC (permalink / raw)
To: Puranjay Mohan, Albert Ou, Alexei Starovoitov, Andrew Morton,
Andrii Nakryiko, bpf, Daniel Borkmann, David S. Miller,
Eduard Zingerman, Eric Dumazet, Hao Luo, Helge Deller,
Jakub Kicinski, James E.J. Bottomley, Jiri Olsa, John Fastabend,
KP Singh, linux-kernel, linux-parisc, linux-riscv,
Martin KaFai Lau, Mykola Lysenko, Palmer Dabbelt, Paolo Abeni,
Paul Walmsley, Puranjay Mohan, Shuah Khan, Song Liu,
Stanislav Fomichev
Cc: oe-kbuild-all, Linux Memory Management List, netdev
Hi Puranjay,
kernel test robot noticed the following build warnings:
[auto build test WARNING on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Puranjay-Mohan/net-checksum-move-from32to16-to-generic-header/20241021-202707
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20241021122112.101513-2-puranjay%40kernel.org
patch subject: [PATCH bpf-next 1/5] net: checksum: move from32to16() to generic header
config: x86_64-randconfig-122-20241022 (https://download.01.org/0day-ci/archive/20241022/202410222149.3FVJFYYy-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241022/202410222149.3FVJFYYy-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410222149.3FVJFYYy-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> lib/checksum.c:84:34: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int [assigned] result @@
lib/checksum.c:84:34: sparse: expected restricted __wsum [usertype] sum
lib/checksum.c:84:34: sparse: got unsigned int [assigned] result
>> lib/checksum.c:84:16: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [assigned] result @@ got restricted __sum16 @@
lib/checksum.c:84:16: sparse: expected unsigned int [assigned] result
lib/checksum.c:84:16: sparse: got restricted __sum16
vim +84 lib/checksum.c
35
36 #ifndef do_csum
37 static unsigned int do_csum(const unsigned char *buff, int len)
38 {
39 int odd;
40 unsigned int result = 0;
41
42 if (len <= 0)
43 goto out;
44 odd = 1 & (unsigned long) buff;
45 if (odd) {
46 #ifdef __LITTLE_ENDIAN
47 result += (*buff << 8);
48 #else
49 result = *buff;
50 #endif
51 len--;
52 buff++;
53 }
54 if (len >= 2) {
55 if (2 & (unsigned long) buff) {
56 result += *(unsigned short *) buff;
57 len -= 2;
58 buff += 2;
59 }
60 if (len >= 4) {
61 const unsigned char *end = buff + ((unsigned)len & ~3);
62 unsigned int carry = 0;
63 do {
64 unsigned int w = *(unsigned int *) buff;
65 buff += 4;
66 result += carry;
67 result += w;
68 carry = (w > result);
69 } while (buff < end);
70 result += carry;
71 result = (result & 0xffff) + (result >> 16);
72 }
73 if (len & 2) {
74 result += *(unsigned short *) buff;
75 buff += 2;
76 }
77 }
78 if (len & 1)
79 #ifdef __LITTLE_ENDIAN
80 result += *buff;
81 #else
82 result += (*buff << 8);
83 #endif
> 84 result = csum_from32to16(result);
85 if (odd)
86 result = ((result >> 8) & 0xff) | ((result & 0xff) << 8);
87 out:
88 return result;
89 }
90 #endif
91
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread