On Tue, 27 Mar 2018 18:22:00 -0700, David Ahern wrote: > +void nsim_devlink_setup(struct netdevsim *ns) > +{ > + struct net *net = nsim_to_net(ns); > + bool *reg_devlink = net_generic(net, nsim_devlink_id); > + struct devlink *devlink; > + int err = -ENOMEM; > + > + /* only one device per namespace controls devlink */ > + if (!*reg_devlink) { > + ns->devlink = NULL; > + return; > + } > + > + devlink = devlink_alloc(&nsim_devlink_ops, 0); > + if (!devlink) > + return; > + > + err = devlink_register(devlink, &ns->dev); > + if (err) > + goto err_devlink_free; > + > + err = devlink_resources_register(devlink); > + if (err) > + goto err_dl_unregister; > + > + ns->devlink = devlink; > + > + *reg_devlink = false; > + > + return; > + > +err_dl_unregister: > + devlink_unregister(devlink); > +err_devlink_free: > + devlink_free(devlink); > +}
nit: DaveM expressed preference to not have silent failures in a discussion about DebugFS, not sure it applies here, but why not handle errors?