This is for consistency with ipv4.  Using "-1" makes
no sense.
It was made this way a long time ago merely to be consistent
with how the ipv6 socket hoplimit "default" is stored.
Signed-off-by: David S. Miller <davem@davemloft.net>
 int ip6_dst_hoplimit(struct dst_entry *dst)
 {
        int hoplimit = dst_metric_raw(dst, RTAX_HOPLIMIT);
-       if (hoplimit < 0) {
+       if (hoplimit == 0) {
                struct net_device *dev = dst->dev;
                struct inet6_dev *idev;
 
                }
        }
 
-       if (dst_metric_raw(&rt->dst, RTAX_HOPLIMIT) == 0)
-               dst_metric_set(&rt->dst, RTAX_HOPLIMIT, -1);
        if (!dst_mtu(&rt->dst))
                dst_metric_set(&rt->dst, RTAX_MTU, ipv6_get_mtu(dev));
        if (!dst_metric(&rt->dst, RTAX_ADVMSS))