mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
netdevsim: register a new devlink param with default value interface
Create a new devlink param, test2, that supports default param actions via the devlink_param::get_default() and devlink_param::reset_default() functions. Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Signed-off-by: Daniel Zahka <daniel.zahka@gmail.com> Link: https://patch.msgid.link/20251119025038.651131-6-daniel.zahka@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
b11d358bf8
commit
72924056eb
@@ -320,6 +320,8 @@ static int nsim_dev_debugfs_init(struct nsim_dev *nsim_dev)
|
||||
&nsim_dev->max_macs);
|
||||
debugfs_create_bool("test1", 0600, nsim_dev->ddir,
|
||||
&nsim_dev->test1);
|
||||
debugfs_create_u32("test2", 0600, nsim_dev->ddir,
|
||||
&nsim_dev->test2);
|
||||
nsim_dev->take_snapshot = debugfs_create_file("take_snapshot",
|
||||
0200,
|
||||
nsim_dev->ddir,
|
||||
@@ -521,8 +523,53 @@ err_out:
|
||||
enum nsim_devlink_param_id {
|
||||
NSIM_DEVLINK_PARAM_ID_BASE = DEVLINK_PARAM_GENERIC_ID_MAX,
|
||||
NSIM_DEVLINK_PARAM_ID_TEST1,
|
||||
NSIM_DEVLINK_PARAM_ID_TEST2,
|
||||
};
|
||||
|
||||
static int
|
||||
nsim_devlink_param_test2_get(struct devlink *devlink, u32 id,
|
||||
struct devlink_param_gset_ctx *ctx,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct nsim_dev *nsim_dev = devlink_priv(devlink);
|
||||
|
||||
ctx->val.vu32 = nsim_dev->test2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
nsim_devlink_param_test2_set(struct devlink *devlink, u32 id,
|
||||
struct devlink_param_gset_ctx *ctx,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct nsim_dev *nsim_dev = devlink_priv(devlink);
|
||||
|
||||
nsim_dev->test2 = ctx->val.vu32;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define NSIM_DEV_TEST2_DEFAULT 1234
|
||||
|
||||
static int
|
||||
nsim_devlink_param_test2_get_default(struct devlink *devlink, u32 id,
|
||||
struct devlink_param_gset_ctx *ctx,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
ctx->val.vu32 = NSIM_DEV_TEST2_DEFAULT;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
nsim_devlink_param_test2_reset_default(struct devlink *devlink, u32 id,
|
||||
enum devlink_param_cmode cmode,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct nsim_dev *nsim_dev = devlink_priv(devlink);
|
||||
|
||||
nsim_dev->test2 = NSIM_DEV_TEST2_DEFAULT;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct devlink_param nsim_devlink_params[] = {
|
||||
DEVLINK_PARAM_GENERIC(MAX_MACS,
|
||||
BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
|
||||
@@ -531,6 +578,14 @@ static const struct devlink_param nsim_devlink_params[] = {
|
||||
"test1", DEVLINK_PARAM_TYPE_BOOL,
|
||||
BIT(DEVLINK_PARAM_CMODE_DRIVERINIT),
|
||||
NULL, NULL, NULL),
|
||||
DEVLINK_PARAM_DRIVER_WITH_DEFAULTS(NSIM_DEVLINK_PARAM_ID_TEST2,
|
||||
"test2", DEVLINK_PARAM_TYPE_U32,
|
||||
BIT(DEVLINK_PARAM_CMODE_RUNTIME),
|
||||
nsim_devlink_param_test2_get,
|
||||
nsim_devlink_param_test2_set,
|
||||
NULL,
|
||||
nsim_devlink_param_test2_get_default,
|
||||
nsim_devlink_param_test2_reset_default),
|
||||
};
|
||||
|
||||
static void nsim_devlink_set_params_init_values(struct nsim_dev *nsim_dev,
|
||||
@@ -1590,6 +1645,7 @@ int nsim_drv_probe(struct nsim_bus_dev *nsim_bus_dev)
|
||||
nsim_dev->fw_update_flash_chunk_time_ms = NSIM_DEV_FLASH_CHUNK_TIME_MS_DEFAULT;
|
||||
nsim_dev->max_macs = NSIM_DEV_MAX_MACS_DEFAULT;
|
||||
nsim_dev->test1 = NSIM_DEV_TEST1_DEFAULT;
|
||||
nsim_dev->test2 = NSIM_DEV_TEST2_DEFAULT;
|
||||
spin_lock_init(&nsim_dev->fa_cookie_lock);
|
||||
|
||||
dev_set_drvdata(&nsim_bus_dev->dev, nsim_dev);
|
||||
|
||||
@@ -331,6 +331,7 @@ struct nsim_dev {
|
||||
u32 fw_update_flash_chunk_time_ms;
|
||||
u32 max_macs;
|
||||
bool test1;
|
||||
u32 test2;
|
||||
bool dont_allow_reload;
|
||||
bool fail_reload;
|
||||
struct devlink_region *dummy_region;
|
||||
|
||||
Reference in New Issue
Block a user