Lines Matching refs:param

107 static int devlink_param_generic_verify(const struct devlink_param *param)  in devlink_param_generic_verify()  argument
110 if (param->id > DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_generic_verify()
112 if (strcmp(param->name, devlink_param_generic[param->id].name)) in devlink_param_generic_verify()
115 WARN_ON(param->type != devlink_param_generic[param->id].type); in devlink_param_generic_verify()
120 static int devlink_param_driver_verify(const struct devlink_param *param) in devlink_param_driver_verify() argument
124 if (param->id <= DEVLINK_PARAM_GENERIC_ID_MAX) in devlink_param_driver_verify()
128 if (!strcmp(param->name, devlink_param_generic[i].name)) in devlink_param_driver_verify()
141 if (!strcmp(param_item->param->name, param_name)) in devlink_param_find_by_name()
154 devlink_param_cmode_is_supported(const struct devlink_param *param, in devlink_param_cmode_is_supported() argument
157 return test_bit(cmode, &param->supported_cmodes); in devlink_param_cmode_is_supported()
161 const struct devlink_param *param, in devlink_param_get() argument
164 if (!param->get) in devlink_param_get()
166 return param->get(devlink, param->id, ctx); in devlink_param_get()
170 const struct devlink_param *param, in devlink_param_set() argument
174 if (!param->set) in devlink_param_set()
176 return param->set(devlink, param->id, ctx, extack); in devlink_param_set()
242 const struct devlink_param *param = param_item->param; in devlink_nl_param_fill() local
252 if (!devlink_param_cmode_is_supported(param, i)) in devlink_nl_param_fill()
263 err = devlink_param_get(devlink, param, &ctx); in devlink_nl_param_fill()
287 if (nla_put_string(msg, DEVLINK_ATTR_PARAM_NAME, param->name)) in devlink_nl_param_fill()
289 if (param->generic && nla_put_flag(msg, DEVLINK_ATTR_PARAM_GENERIC)) in devlink_nl_param_fill()
291 if (nla_put_u8(msg, DEVLINK_ATTR_PARAM_TYPE, param->type)) in devlink_nl_param_fill()
302 err = devlink_nl_param_value_fill_one(msg, param->type, in devlink_nl_param_fill()
419 devlink_param_value_get_from_info(const struct devlink_param *param, in devlink_param_value_get_from_info() argument
428 if (param->type != DEVLINK_PARAM_TYPE_BOOL && !param_data) in devlink_param_value_get_from_info()
431 switch (param->type) { in devlink_param_value_get_from_info()
517 const struct devlink_param *param; in __devlink_nl_cmd_param_set_doit() local
524 param = param_item->param; in __devlink_nl_cmd_param_set_doit()
528 if (param_type != param->type) in __devlink_nl_cmd_param_set_doit()
530 err = devlink_param_value_get_from_info(param, info, &value); in __devlink_nl_cmd_param_set_doit()
533 if (param->validate) { in __devlink_nl_cmd_param_set_doit()
534 err = param->validate(devlink, param->id, value, info->extack); in __devlink_nl_cmd_param_set_doit()
542 if (!devlink_param_cmode_is_supported(param, cmode)) in __devlink_nl_cmd_param_set_doit()
549 if (!param->set) in __devlink_nl_cmd_param_set_doit()
553 err = devlink_param_set(devlink, param, &ctx, info->extack); in __devlink_nl_cmd_param_set_doit()
591 static int devlink_param_verify(const struct devlink_param *param) in devlink_param_verify() argument
593 if (!param || !param->name || !param->supported_cmodes) in devlink_param_verify()
595 if (param->generic) in devlink_param_verify()
596 return devlink_param_generic_verify(param); in devlink_param_verify()
598 return devlink_param_driver_verify(param); in devlink_param_verify()
602 const struct devlink_param *param) in devlink_param_register() argument
607 WARN_ON(devlink_param_verify(param)); in devlink_param_register()
608 WARN_ON(devlink_param_find_by_name(&devlink->params, param->name)); in devlink_param_register()
610 if (param->supported_cmodes == BIT(DEVLINK_PARAM_CMODE_DRIVERINIT)) in devlink_param_register()
611 WARN_ON(param->get || param->set); in devlink_param_register()
613 WARN_ON(!param->get || !param->set); in devlink_param_register()
619 param_item->param = param; in devlink_param_register()
621 err = xa_insert(&devlink->params, param->id, param_item, GFP_KERNEL); in devlink_param_register()
634 const struct devlink_param *param) in devlink_param_unregister() argument
638 param_item = devlink_param_find_by_id(&devlink->params, param->id); in devlink_param_unregister()
642 xa_erase(&devlink->params, param->id); in devlink_param_unregister()
659 const struct devlink_param *param = params; in devl_params_register() local
664 for (i = 0; i < params_count; i++, param++) { in devl_params_register()
665 err = devlink_param_register(devlink, param); in devl_params_register()
675 for (param--; i > 0; i--, param--) in devl_params_register()
676 devlink_param_unregister(devlink, param); in devl_params_register()
704 const struct devlink_param *param = params; in devl_params_unregister() local
709 for (i = 0; i < params_count; i++, param++) in devl_params_unregister()
710 devlink_param_unregister(devlink, param); in devl_params_unregister()
762 if (WARN_ON(!devlink_param_cmode_is_supported(param_item->param, in devl_param_driverinit_value_get()
795 if (WARN_ON(!devlink_param_cmode_is_supported(param_item->param, in devl_param_driverinit_value_set()
812 if (!devlink_param_cmode_is_supported(param_item->param, in devlink_params_driverinit_load_new()