Tue, Sep 15, 2020 at 02:56:48PM CEST, mo...@nvidia.com wrote: > >On 9/15/2020 12:33 AM, Jakub Kicinski wrote: >> External email: Use caution opening links or attachments >> >> >> On Mon, 14 Sep 2020 09:07:48 +0300 Moshe Shemesh wrote: >> > @@ -3011,12 +3060,41 @@ static int devlink_nl_cmd_reload(struct sk_buff >> > *skb, struct genl_info *info) >> > return PTR_ERR(dest_net); >> > } >> > >> > - err = devlink_reload(devlink, dest_net, info->extack); >> > + if (info->attrs[DEVLINK_ATTR_RELOAD_ACTION]) >> > + action = nla_get_u8(info->attrs[DEVLINK_ATTR_RELOAD_ACTION]); >> > + else >> > + action = DEVLINK_RELOAD_ACTION_DRIVER_REINIT; >> > + >> > + if (action == DEVLINK_RELOAD_ACTION_UNSPEC || action > >> > DEVLINK_RELOAD_ACTION_MAX) { >> > + NL_SET_ERR_MSG_MOD(info->extack, "Invalid reload action"); >> > + return -EINVAL; >> > + } else if (!devlink_reload_action_is_supported(devlink, action)) { >> > + NL_SET_ERR_MSG_MOD(info->extack, "Requested reload action is >> > not supported"); >> > + return -EOPNOTSUPP; >> > + } >> > + >> > + err = devlink_reload(devlink, dest_net, action, info->extack, >> > &actions_performed); >> > >> > if (dest_net) >> > put_net(dest_net); >> > >> > - return err; >> > + if (err) >> > + return err; >> > + >> > + WARN_ON(!actions_performed); >> > + msg = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_KERNEL); >> > + if (!msg) >> > + return -ENOMEM; >> > + >> > + err = devlink_nl_reload_actions_performed_fill(msg, devlink, >> > actions_performed, >> > + DEVLINK_CMD_RELOAD, >> > info->snd_portid, >> > + info->snd_seq, 0); >> > + if (err) { >> > + nlmsg_free(msg); >> > + return err; >> > + } >> > + >> > + return genlmsg_reply(msg, info); >> I think generating the reply may break existing users. Only generate >> the reply if request contained DEVLINK_ATTR_RELOAD_ACTION (or any other >> new attribute which existing users can't pass). > > >OK, I can do that. But I update stats and generate devlink notification >anyway, that should fine, right ?
Yes. >