tree: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
master
head: 93e68cd6115f67d8363c94dae8206af36f6d3b00
commit: 07dabf20d9867710b90b91108b2adcd448773e25 [386/609] vxlan: tun_id is
64bit, not 32bit
reproduce:
# apt-get install sparse
git checkout 07dabf20d9867710b90b91108b2adcd448773e25
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
include/net/checksum.h:177:43: sparse: incorrect type in argument 2
(different base types)
include/net/checksum.h:177:43: expected restricted __wsum [usertype]
addend
include/net/checksum.h:177:43: got restricted __sum16 [usertype] <noident>
include/net/inet_ecn.h:131:58: sparse: incorrect type in argument 2
(different base types)
include/net/inet_ecn.h:131:58: expected restricted __wsum [usertype]
addend
include/net/inet_ecn.h:131:58: got restricted __be32 [assigned]
[usertype] from
include/net/inet_ecn.h:131:65: sparse: incorrect type in argument 2
(different base types)
include/net/inet_ecn.h:131:65: expected restricted __wsum [usertype]
addend
include/net/inet_ecn.h:131:65: got restricted __be32 [assigned]
[usertype] to
include/net/inet_ecn.h:131:58: sparse: incorrect type in argument 2
(different base types)
include/net/inet_ecn.h:131:58: expected restricted __wsum [usertype]
addend
include/net/inet_ecn.h:131:58: got restricted __be32 [assigned]
[usertype] from
include/net/inet_ecn.h:131:65: sparse: incorrect type in argument 2
(different base types)
include/net/inet_ecn.h:131:65: expected restricted __wsum [usertype]
addend
include/net/inet_ecn.h:131:65: got restricted __be32 [assigned]
[usertype] to
include/net/vxlan.h:275:27: sparse: restricted __be32 degrades to integer
include/net/vxlan.h:275:45: sparse: incorrect type in return expression
(different base types)
include/net/vxlan.h:275:45: expected restricted __be32
include/net/vxlan.h:275:45: got unsigned int
>> include/net/vxlan.h:302:17: sparse: cast to restricted __be64
>> include/net/vxlan.h:302:17: sparse: cast from restricted __be32
include/net/vxlan.h:302:17: sparse: restricted __be64 degrades to integer
>> include/net/vxlan.h:302:28: sparse: incorrect type in return expression
>> (different base types)
include/net/vxlan.h:302:28: expected restricted __be64
include/net/vxlan.h:302:28: got unsigned long long
include/net/vxlan.h:275:27: sparse: restricted __be32 degrades to integer
include/net/vxlan.h:275:45: sparse: incorrect type in return expression
(different base types)
include/net/vxlan.h:275:45: expected restricted __be32
include/net/vxlan.h:275:45: got unsigned int
include/net/vxlan.h:284:16: sparse: restricted __be32 degrades to integer
include/net/vxlan.h:284:20: sparse: incorrect type in return expression
(different base types)
include/net/vxlan.h:284:20: expected restricted __be32
include/net/vxlan.h:284:20: got unsigned int
include/net/vxlan.h:293:16: sparse: restricted __be64 degrades to integer
include/net/vxlan.h:293:23: sparse: incorrect type in return expression
(different base types)
include/net/vxlan.h:293:23: expected restricted __be32
include/net/vxlan.h:293:23: got unsigned long long
vim +302 include/net/vxlan.h
269
270 static inline __be32 vxlan_vni(__be32 vni_field)
271 {
272 #if defined(__BIG_ENDIAN)
273 return vni_field >> 8;
274 #else
> 275 return (vni_field & VXLAN_VNI_MASK) << 8;
276 #endif
277 }
278
279 static inline __be32 vxlan_vni_field(__be32 vni)
280 {
281 #if defined(__BIG_ENDIAN)
282 return vni << 8;
283 #else
284 return vni >> 8;
285 #endif
286 }
287
288 static inline __be32 vxlan_tun_id_to_vni(__be64 tun_id)
289 {
290 #if defined(__BIG_ENDIAN)
291 return tun_id;
292 #else
293 return tun_id >> 32;
294 #endif
295 }
296
297 static inline __be64 vxlan_vni_to_tun_id(__be32 vni)
298 {
299 #if defined(__BIG_ENDIAN)
300 return (__be64)vni;
301 #else
> 302 return (__be64)vni << 32;
303 #endif
304 }
305
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation