Commit 5692d7ea authored by Jiri Benc's avatar Jiri Benc Committed by David S. Miller

vxlan: fix sparse warnings

Sparse reports false positives for the header manipulation inlines. Annotate
them correctly.

Tested by sparse on a little endian and big endian machine.

Fixes: 54bfd872 ("vxlan: keep flags and vni in network byte order")
Reported-by: default avatarkbuild test robot <fengguang.wu@intel.com>
Signed-off-by: default avatarJiri Benc <jbenc@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ed49e650
...@@ -271,36 +271,36 @@ static inline struct vxlanhdr *vxlan_hdr(struct sk_buff *skb) ...@@ -271,36 +271,36 @@ static inline struct vxlanhdr *vxlan_hdr(struct sk_buff *skb)
static inline __be32 vxlan_vni(__be32 vni_field) static inline __be32 vxlan_vni(__be32 vni_field)
{ {
#if defined(__BIG_ENDIAN) #if defined(__BIG_ENDIAN)
return vni_field >> 8; return (__force __be32)((__force u32)vni_field >> 8);
#else #else
return (vni_field & VXLAN_VNI_MASK) << 8; return (__force __be32)((__force u32)(vni_field & VXLAN_VNI_MASK) << 8);
#endif #endif
} }
static inline __be32 vxlan_vni_field(__be32 vni) static inline __be32 vxlan_vni_field(__be32 vni)
{ {
#if defined(__BIG_ENDIAN) #if defined(__BIG_ENDIAN)
return vni << 8; return (__force __be32)((__force u32)vni << 8);
#else #else
return vni >> 8; return (__force __be32)((__force u32)vni >> 8);
#endif #endif
} }
static inline __be32 vxlan_tun_id_to_vni(__be64 tun_id) static inline __be32 vxlan_tun_id_to_vni(__be64 tun_id)
{ {
#if defined(__BIG_ENDIAN) #if defined(__BIG_ENDIAN)
return tun_id; return (__force __be32)tun_id;
#else #else
return tun_id >> 32; return (__force __be32)((__force u64)tun_id >> 32);
#endif #endif
} }
static inline __be64 vxlan_vni_to_tun_id(__be32 vni) static inline __be64 vxlan_vni_to_tun_id(__be32 vni)
{ {
#if defined(__BIG_ENDIAN) #if defined(__BIG_ENDIAN)
return (__be64)vni; return (__force __be64)vni;
#else #else
return (__be64)vni << 32; return (__force __be64)((u64)(__force u32)vni << 32);
#endif #endif
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment