Wed, Nov 15, 2017 at 09:03:59AM CET, jakub.kicin...@netronome.com wrote: >On Tue, 14 Nov 2017 17:18:44 +0100, Jiri Pirko wrote: >> +static int devlink_nl_cmd_reload(struct sk_buff *skb, struct genl_info >> *info) >> +{ >> + struct devlink *devlink = info->user_ptr[0]; >> + int err; >> + >> + if (!devlink->ops->reload) >> + return -EOPNOTSUPP; >> + >> + err = devlink_resources_validate(devlink, NULL, info); >> + if (err) >> + return err; >> + >> + mutex_unlock(&devlink->lock); >> + err = devlink->ops->reload(devlink); >> + mutex_lock(&devlink->lock); >> + >> + return err; >> +} > >I'm a bit confused with the locking, why is devlink->lock not held >around the validation?
It is.