#define DST_XFRM_TUNNEL                0x0080
 #define DST_XFRM_QUEUE         0x0100
 #define DST_METADATA           0x0200
-#define DST_NOGC               0x0400
 
        short                   error;
 
  */
 static inline bool dst_hold_safe(struct dst_entry *dst)
 {
-       if (dst->flags & (DST_NOCACHE | DST_NOGC))
-               return atomic_inc_not_zero(&dst->__refcnt);
-       dst_hold(dst);
-       return true;
+       return atomic_inc_not_zero(&dst->__refcnt);
 }
 
 /**
 
 {
        if (dst) {
                int newrefcnt;
-               unsigned short destroy_after_rcu = dst->flags &
-                                                  (DST_NOCACHE | DST_NOGC);
 
                newrefcnt = atomic_dec_return(&dst->__refcnt);
                if (unlikely(newrefcnt < 0))
                        net_warn_ratelimited("%s: dst:%p refcnt:%d\n",
                                             __func__, dst, newrefcnt);
-               if (!newrefcnt && unlikely(destroy_after_rcu))
+               if (!newrefcnt)
                        call_rcu(&dst->rcu_head, dst_destroy_rcu);
        }
 }
 
        if (dev_out->flags & IFF_LOOPBACK)
                flags |= RTCF_LOCAL;
 
-       rt = dst_alloc(&dn_dst_ops, dev_out, 1, DST_OBSOLETE_NONE,
-                      DST_HOST | DST_NOGC);
+       rt = dst_alloc(&dn_dst_ops, dev_out, 1, DST_OBSOLETE_NONE, DST_HOST);
        if (rt == NULL)
                goto e_nobufs;
 
        }
 
 make_route:
-       rt = dst_alloc(&dn_dst_ops, out_dev, 1, DST_OBSOLETE_NONE,
-                      DST_HOST | DST_NOGC);
+       rt = dst_alloc(&dn_dst_ops, out_dev, 1, DST_OBSOLETE_NONE, DST_HOST);
        if (rt == NULL)
                goto e_nobufs;
 
 
        rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK,
                       (will_cache ? 0 : (DST_HOST | DST_NOCACHE)) |
                       (nopolicy ? DST_NOPOLICY : 0) |
-                      (noxfrm ? DST_NOXFRM : 0) |
-                      DST_NOGC);
+                      (noxfrm ? DST_NOXFRM : 0));
 
        if (rt) {
                rt->rt_genid = rt_genid_ipv4(dev_net(dev));
        struct rtable *ort = (struct rtable *) dst_orig;
        struct rtable *rt;
 
-       rt = dst_alloc(&ipv4_dst_blackhole_ops, NULL, 1, DST_OBSOLETE_NONE, DST_NOGC);
+       rt = dst_alloc(&ipv4_dst_blackhole_ops, NULL, 1, DST_OBSOLETE_NONE, 0);
        if (rt) {
                struct dst_entry *new = &rt->dst;
 
 
                                        int flags)
 {
        struct rt6_info *rt = dst_alloc(&net->ipv6.ip6_dst_ops, dev,
-                                       1, DST_OBSOLETE_FORCE_CHK,
-                                       flags | DST_NOGC);
+                                       1, DST_OBSOLETE_FORCE_CHK, flags);
 
        if (rt)
                rt6_info_init(rt);
        struct dst_entry *new = NULL;
 
        rt = dst_alloc(&ip6_dst_blackhole_ops, loopback_dev, 1,
-                      DST_OBSOLETE_NONE, DST_NOGC);
+                      DST_OBSOLETE_NONE, 0);
        if (rt) {
                rt6_info_init(rt);
 
 
        default:
                BUG();
        }
-       xdst = dst_alloc(dst_ops, NULL, 1, DST_OBSOLETE_NONE, DST_NOGC);
+       xdst = dst_alloc(dst_ops, NULL, 1, DST_OBSOLETE_NONE, 0);
 
        if (likely(xdst)) {
                struct dst_entry *dst = &xdst->u.dst;