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?

Reply via email to