Fri, Jan 18, 2019 at 08:09:38AM CET, vasundhara-v.vo...@broadcom.com wrote: >Add functions to register and unregister for the driver supported >configuration parameters table per port. > >v2->v3: >- Add a helper __devlink_params_register() with common code used by > both devlink_params_register() and devlink_port_params_register(). >
[...] >+ >+static int __devlink_params_register(struct devlink *devlink, >+ struct list_head *param_list, >+ const struct devlink_param *params, >+ size_t params_count) > { > const struct devlink_param *param = params; > int i; >@@ -4490,20 +4493,11 @@ int devlink_params_register(struct devlink *devlink, > > mutex_lock(&devlink->lock); > for (i = 0; i < params_count; i++, param++) { >- if (!param || !param->name || !param->supported_cmodes) { >- err = -EINVAL; >+ err = devlink_param_verify(param); >+ if (err) > goto rollback; >- } >- if (param->generic) { >- err = devlink_param_generic_verify(param); >- if (err) >- goto rollback; >- } else { >- err = devlink_param_driver_verify(param); >- if (err) >- goto rollback; >- } >- err = devlink_param_register_one(devlink, param); >+ >+ err = devlink_param_register_one(devlink, param_list, param); > if (err) > goto rollback; > } >@@ -4515,31 +4509,57 @@ int devlink_params_register(struct devlink *devlink, > if (!i) > goto unlock; > for (param--; i > 0; i--, param--) >- devlink_param_unregister_one(devlink, param); >+ devlink_param_unregister_one(devlink, param_list, param); > unlock: > mutex_unlock(&devlink->lock); > return err; > } >-EXPORT_SYMBOL_GPL(devlink_params_register); > > /** >- * devlink_params_unregister - unregister configuration parameters >+ * devlink_params_register - register configuration parameters >+ * > * @devlink: devlink >- * @params: configuration parameters to unregister >+ * @params: configuration parameters array > * @params_count: number of parameters provided >+ * >+ * Register the configuration parameters supported by the driver. > */ >-void devlink_params_unregister(struct devlink *devlink, >- const struct devlink_param *params, >- size_t params_count) >+int devlink_params_register(struct devlink *devlink, The order of the functions should be: __devlink_params_register __devlink_params_unregister devlink_params_register devlink_params_unregister devlink_port_params_register devlink_port_params_unregister Your order is a bit confusing. Other than that: Acked-by: Jiri Pirko <j...@mellanox.com> [...]