Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
[linux-2.6-microblaze.git] / net / core / devlink.c
index 1338f5f..4c63c9a 100644 (file)
@@ -2812,7 +2812,7 @@ static int devlink_nl_cmd_reload(struct sk_buff *skb, struct genl_info *info)
        struct net *dest_net = NULL;
        int err;
 
-       if (!devlink_reload_supported(devlink))
+       if (!devlink_reload_supported(devlink) || !devlink->reload_enabled)
                return -EOPNOTSUPP;
 
        err = devlink_resources_validate(devlink, NULL, info);
@@ -4747,6 +4747,7 @@ struct devlink_health_reporter {
        bool auto_recover;
        u8 health_state;
        u64 dump_ts;
+       u64 dump_real_ts;
        u64 error_count;
        u64 recovery_count;
        u64 last_recovery_ts;
@@ -4923,6 +4924,7 @@ static int devlink_health_do_dump(struct devlink_health_reporter *reporter,
                goto dump_err;
 
        reporter->dump_ts = jiffies;
+       reporter->dump_real_ts = ktime_get_real_ns();
 
        return 0;
 
@@ -5072,6 +5074,10 @@ devlink_nl_health_reporter_fill(struct sk_buff *msg,
                              jiffies_to_msecs(reporter->dump_ts),
                              DEVLINK_ATTR_PAD))
                goto reporter_nest_cancel;
+       if (reporter->dump_fmsg &&
+           nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS,
+                             reporter->dump_real_ts, DEVLINK_ATTR_PAD))
+               goto reporter_nest_cancel;
 
        nla_nest_end(msg, reporter_attr);
        genlmsg_end(msg, hdr);