Hi Wei, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Wei-Wang/ipv6-avoid-taking-refcnt-on-dst-during-route-lookup/20190621-052244 config: i386-randconfig-x077-201924 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): In file included from drivers/net/ipvlan/ipvlan.h:23:0, from drivers/net/ipvlan/ipvlan_main.c:5: include/net/ip6_route.h: In function 'ip6_route_output_flags': >> include/net/ip6_route.h:103:15: error: 'struct net' has no member named 'ipv6'; did you mean 'ipv4'? dst = &net->ipv6.ip6_null_entry->dst; ^~~~ ipv4 vim +103 include/net/ip6_route.h 80 81 void ip6_route_input(struct sk_buff *skb); 82 struct dst_entry *ip6_route_input_lookup(struct net *net, 83 struct net_device *dev, 84 struct flowi6 *fl6, 85 const struct sk_buff *skb, int flags); 86 87 struct dst_entry *ip6_route_output_flags_noref(struct net *net, 88 const struct sock *sk, 89 struct flowi6 *fl6, int flags); 90 91 static inline struct dst_entry *ip6_route_output_flags(struct net *net, 92 const struct sock *sk, 93 struct flowi6 *fl6, 94 int flags) { 95 struct dst_entry *dst; 96 struct rt6_info *rt6; 97 98 rcu_read_lock(); 99 dst = ip6_route_output_flags_noref(net, sk, fl6, flags); 100 rt6 = (struct rt6_info *)dst; 101 /* For dst cached in uncached_list, refcnt is already taken. */ 102 if (list_empty(&rt6->rt6i_uncached) && !dst_hold_safe(dst)) { > 103 dst = &net->ipv6.ip6_null_entry->dst; 104 dst_hold(dst); 105 } 106 rcu_read_unlock(); 107 108 return dst; 109 } 110 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation