tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 7dc6fd0f3b8404542718039f5de19fe56e474578 commit: 571912c69f0ed731bd1e071ade9dc7ca4aa52065 net: UDP tunnel encapsulation module for tunnelling different protocols like MPLS, IP, NSH etc. date: 5 months ago compiler: sparc-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> cppcheck warnings: (new ones prefixed by >>) >> drivers/net/bareudp.c:274:45: warning: Clarify calculation precedence for >> '&' and '?'. [clarifyCalculation] df = key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0; ^ vim +274 drivers/net/bareudp.c 240 241 static int bareudp_xmit_skb(struct sk_buff *skb, struct net_device *dev, 242 struct bareudp_dev *bareudp, 243 const struct ip_tunnel_info *info) 244 { 245 bool xnet = !net_eq(bareudp->net, dev_net(bareudp->dev)); 246 bool use_cache = ip_tunnel_dst_cache_usable(skb, info); 247 struct socket *sock = rcu_dereference(bareudp->sock); 248 bool udp_sum = !!(info->key.tun_flags & TUNNEL_CSUM); 249 const struct ip_tunnel_key *key = &info->key; 250 struct rtable *rt; 251 __be16 sport, df; 252 int min_headroom; 253 __u8 tos, ttl; 254 __be32 saddr; 255 int err; 256 257 if (!sock) 258 return -ESHUTDOWN; 259 260 rt = ip_route_output_tunnel(skb, dev, bareudp->net, &saddr, info, 261 IPPROTO_UDP, use_cache); 262 263 if (IS_ERR(rt)) 264 return PTR_ERR(rt); 265 266 skb_tunnel_check_pmtu(skb, &rt->dst, 267 BAREUDP_IPV4_HLEN + info->options_len); 268 269 sport = udp_flow_src_port(bareudp->net, skb, 270 bareudp->sport_min, USHRT_MAX, 271 true); 272 tos = ip_tunnel_ecn_encap(key->tos, ip_hdr(skb), skb); 273 ttl = key->ttl; > 274 df = key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0; 275 skb_scrub_packet(skb, xnet); 276 277 if (!skb_pull(skb, skb_network_offset(skb))) 278 goto free_dst; 279 280 min_headroom = LL_RESERVED_SPACE(rt->dst.dev) + rt->dst.header_len + 281 BAREUDP_BASE_HLEN + info->options_len + sizeof(struct iphdr); 282 283 err = skb_cow_head(skb, min_headroom); 284 if (unlikely(err)) 285 goto free_dst; 286 287 err = udp_tunnel_handle_offloads(skb, udp_sum); 288 if (err) 289 goto free_dst; 290 291 skb_set_inner_protocol(skb, bareudp->ethertype); 292 udp_tunnel_xmit_skb(rt, sock->sk, skb, saddr, info->key.u.ipv4.dst, 293 tos, ttl, df, sport, bareudp->port, 294 !net_eq(bareudp->net, dev_net(bareudp->dev)), 295 !(info->key.tun_flags & TUNNEL_CSUM)); 296 return 0; 297 298 free_dst: 299 dst_release(&rt->dst); 300 return err; 301 } 302 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org