dont-validate: [ strict ]
       flags: [ admin-perm ]
       do:
-        pre: devlink-nl-pre-doit
-        post: devlink-nl-post-doit
+        pre: devlink-nl-pre-doit-dev-lock
+        post: devlink-nl-post-doit-dev-lock
         request:
           attributes:
             - bus-name
 
        return __devlink_nl_pre_doit(skb, info, DEVLINK_NL_FLAG_NEED_PORT);
 }
 
+int devlink_nl_pre_doit_dev_lock(const struct genl_split_ops *ops,
+                                struct sk_buff *skb, struct genl_info *info)
+{
+       return __devlink_nl_pre_doit(skb, info, DEVLINK_NL_FLAG_NEED_DEV_LOCK);
+}
+
 int devlink_nl_pre_doit_port_optional(const struct genl_split_ops *ops,
                                      struct sk_buff *skb,
                                      struct genl_info *info)
        __devlink_nl_post_doit(skb, info, 0);
 }
 
+void
+devlink_nl_post_doit_dev_lock(const struct genl_split_ops *ops,
+                             struct sk_buff *skb, struct genl_info *info)
+{
+       __devlink_nl_post_doit(skb, info, DEVLINK_NL_FLAG_NEED_DEV_LOCK);
+}
+
 static int devlink_nl_inst_single_dumpit(struct sk_buff *msg,
                                         struct netlink_callback *cb, int flags,
                                         devlink_nl_dump_one_func_t *dump_one,
 
        {
                .cmd            = DEVLINK_CMD_RELOAD,
                .validate       = GENL_DONT_VALIDATE_STRICT,
-               .pre_doit       = devlink_nl_pre_doit,
+               .pre_doit       = devlink_nl_pre_doit_dev_lock,
                .doit           = devlink_nl_reload_doit,
-               .post_doit      = devlink_nl_post_doit,
+               .post_doit      = devlink_nl_post_doit_dev_lock,
                .policy         = devlink_reload_nl_policy,
                .maxattr        = DEVLINK_ATTR_RELOAD_LIMITS,
                .flags          = GENL_ADMIN_PERM | GENL_CMD_CAP_DO,
 
                        struct genl_info *info);
 int devlink_nl_pre_doit_port(const struct genl_split_ops *ops,
                             struct sk_buff *skb, struct genl_info *info);
+int devlink_nl_pre_doit_dev_lock(const struct genl_split_ops *ops,
+                                struct sk_buff *skb, struct genl_info *info);
 int devlink_nl_pre_doit_port_optional(const struct genl_split_ops *ops,
                                      struct sk_buff *skb,
                                      struct genl_info *info);
 void
 devlink_nl_post_doit(const struct genl_split_ops *ops, struct sk_buff *skb,
                     struct genl_info *info);
+void
+devlink_nl_post_doit_dev_lock(const struct genl_split_ops *ops,
+                             struct sk_buff *skb, struct genl_info *info);
 
 int devlink_nl_get_doit(struct sk_buff *skb, struct genl_info *info);
 int devlink_nl_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb);