Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
[firefly-linux-kernel-4.4.55.git] / net / core / rtnetlink.c
index bc9e380f0abf51dd3106ec34567d8bbc6cabc273..2c5a0a06c4ce3053a4a6c6afa3437f3a47f2d08c 100644 (file)
@@ -625,9 +625,13 @@ int rtnl_put_cacheinfo(struct sk_buff *skb, struct dst_entry *dst, u32 id,
                .rta_id =  id,
        };
 
-       if (expires)
-               ci.rta_expires = jiffies_to_clock_t(expires);
+       if (expires) {
+               unsigned long clock;
 
+               clock = jiffies_to_clock_t(abs(expires));
+               clock = min_t(unsigned long, clock, INT_MAX);
+               ci.rta_expires = (expires > 0) ? clock : -clock;
+       }
        return nla_put(skb, RTA_CACHEINFO, sizeof(ci), &ci);
 }
 EXPORT_SYMBOL_GPL(rtnl_put_cacheinfo);
@@ -1377,6 +1381,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm,
                        goto errout;
                send_addr_notify = 1;
                modified = 1;
+               add_device_randomness(dev->dev_addr, dev->addr_len);
        }
 
        if (tb[IFLA_MTU]) {