mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-09 00:36:51 -04:00
Merge branch 'devlink-minor-cleanup'
Przemek Kitszel says: ==================== devlink: minor cleanup (Patch 1, 2) Add one helper shortcut to put u64 values into skb. (Patch 3, 4) Minor cleanup for error codes. (Patch 5, 6, 7) Remove some devlink_resource_*() usage and functions itself via replacing devlink_* variants by devl_* ones. v2: fix metadata (cc list, target tree) - Jiri; rebase; tags collected v1: https://lore.kernel.org/20241018102009.10124-1-przemyslaw.kitszel@intel.com ==================== Link: https://patch.msgid.link/20241023131248.27192-1-przemyslaw.kitszel@intel.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -1779,12 +1779,6 @@ int devl_resource_register(struct devlink *devlink,
|
||||
u64 resource_id,
|
||||
u64 parent_resource_id,
|
||||
const struct devlink_resource_size_params *size_params);
|
||||
int devlink_resource_register(struct devlink *devlink,
|
||||
const char *resource_name,
|
||||
u64 resource_size,
|
||||
u64 resource_id,
|
||||
u64 parent_resource_id,
|
||||
const struct devlink_resource_size_params *size_params);
|
||||
void devl_resources_unregister(struct devlink *devlink);
|
||||
void devlink_resources_unregister(struct devlink *devlink);
|
||||
int devl_resource_size_get(struct devlink *devlink,
|
||||
@@ -1797,15 +1791,8 @@ void devl_resource_occ_get_register(struct devlink *devlink,
|
||||
u64 resource_id,
|
||||
devlink_resource_occ_get_t *occ_get,
|
||||
void *occ_get_priv);
|
||||
void devlink_resource_occ_get_register(struct devlink *devlink,
|
||||
u64 resource_id,
|
||||
devlink_resource_occ_get_t *occ_get,
|
||||
void *occ_get_priv);
|
||||
void devl_resource_occ_get_unregister(struct devlink *devlink,
|
||||
u64 resource_id);
|
||||
|
||||
void devlink_resource_occ_get_unregister(struct devlink *devlink,
|
||||
u64 resource_id);
|
||||
int devl_params_register(struct devlink *devlink,
|
||||
const struct devlink_param *params,
|
||||
size_t params_count);
|
||||
|
||||
@@ -971,14 +971,14 @@ static int devlink_nl_flash_update_fill(struct sk_buff *msg,
|
||||
nla_put_string(msg, DEVLINK_ATTR_FLASH_UPDATE_COMPONENT,
|
||||
params->component))
|
||||
goto nla_put_failure;
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE,
|
||||
params->done, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE,
|
||||
params->done))
|
||||
goto nla_put_failure;
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL,
|
||||
params->total, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL,
|
||||
params->total))
|
||||
goto nla_put_failure;
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT,
|
||||
params->timeout, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT,
|
||||
params->timeout))
|
||||
goto nla_put_failure;
|
||||
|
||||
out:
|
||||
|
||||
@@ -181,6 +181,11 @@ devlink_nl_put_handle(struct sk_buff *msg, struct devlink *devlink)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static inline int devlink_nl_put_u64(struct sk_buff *msg, int attrtype, u64 val)
|
||||
{
|
||||
return nla_put_u64_64bit(msg, attrtype, val, DEVLINK_ATTR_PAD);
|
||||
}
|
||||
|
||||
int devlink_nl_put_nested_handle(struct sk_buff *msg, struct net *net,
|
||||
struct devlink *devlink, int attrtype);
|
||||
int devlink_nl_msg_reply_and_new(struct sk_buff **msg, struct genl_info *info);
|
||||
|
||||
@@ -165,18 +165,17 @@ static int devlink_dpipe_table_put(struct sk_buff *skb,
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (nla_put_string(skb, DEVLINK_ATTR_DPIPE_TABLE_NAME, table->name) ||
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_SIZE, table_size,
|
||||
DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_SIZE, table_size))
|
||||
goto nla_put_failure;
|
||||
if (nla_put_u8(skb, DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED,
|
||||
table->counters_enabled))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (table->resource_valid) {
|
||||
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID,
|
||||
table->resource_id, DEVLINK_ATTR_PAD) ||
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,
|
||||
table->resource_units, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID,
|
||||
table->resource_id) ||
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS,
|
||||
table->resource_units))
|
||||
goto nla_put_failure;
|
||||
}
|
||||
if (devlink_dpipe_matches_put(table, skb))
|
||||
@@ -403,12 +402,11 @@ static int devlink_dpipe_entry_put(struct sk_buff *skb,
|
||||
if (!entry_attr)
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index,
|
||||
DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_INDEX, entry->index))
|
||||
goto nla_put_failure;
|
||||
if (entry->counter_valid)
|
||||
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER,
|
||||
entry->counter, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(skb, DEVLINK_ATTR_DPIPE_ENTRY_COUNTER,
|
||||
entry->counter))
|
||||
goto nla_put_failure;
|
||||
|
||||
matches_attr = nla_nest_start_noflag(skb,
|
||||
|
||||
@@ -287,29 +287,27 @@ devlink_nl_health_reporter_fill(struct sk_buff *msg,
|
||||
if (nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_STATE,
|
||||
reporter->health_state))
|
||||
goto reporter_nest_cancel;
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT,
|
||||
reporter->error_count, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT,
|
||||
reporter->error_count))
|
||||
goto reporter_nest_cancel;
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT,
|
||||
reporter->recovery_count, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT,
|
||||
reporter->recovery_count))
|
||||
goto reporter_nest_cancel;
|
||||
if (reporter->ops->recover &&
|
||||
nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD,
|
||||
reporter->graceful_period,
|
||||
DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD,
|
||||
reporter->graceful_period))
|
||||
goto reporter_nest_cancel;
|
||||
if (reporter->ops->recover &&
|
||||
nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER,
|
||||
reporter->auto_recover))
|
||||
goto reporter_nest_cancel;
|
||||
if (reporter->dump_fmsg &&
|
||||
nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS,
|
||||
jiffies_to_msecs(reporter->dump_ts),
|
||||
DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS,
|
||||
jiffies_to_msecs(reporter->dump_ts)))
|
||||
goto reporter_nest_cancel;
|
||||
if (reporter->dump_fmsg &&
|
||||
nla_put_u64_64bit(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS,
|
||||
reporter->dump_real_ts, DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(msg, DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS,
|
||||
reporter->dump_real_ts))
|
||||
goto reporter_nest_cancel;
|
||||
if (reporter->ops->dump &&
|
||||
nla_put_u8(msg, DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP,
|
||||
@@ -963,8 +961,7 @@ devlink_fmsg_item_fill_data(struct devlink_fmsg_item *msg, struct sk_buff *skb)
|
||||
case NLA_U32:
|
||||
return nla_put_u32(skb, attrtype, *(u32 *)msg->value);
|
||||
case NLA_U64:
|
||||
return nla_put_u64_64bit(skb, attrtype, *(u64 *)msg->value,
|
||||
DEVLINK_ATTR_PAD);
|
||||
return devlink_nl_put_u64(skb, attrtype, *(u64 *)msg->value);
|
||||
case NLA_NUL_STRING:
|
||||
return nla_put_string(skb, attrtype, (char *)&msg->value);
|
||||
case NLA_BINARY:
|
||||
|
||||
@@ -108,12 +108,12 @@ static int devlink_nl_rate_fill(struct sk_buff *msg,
|
||||
goto nla_put_failure;
|
||||
}
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_RATE_TX_SHARE,
|
||||
devlink_rate->tx_share, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_RATE_TX_SHARE,
|
||||
devlink_rate->tx_share))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_RATE_TX_MAX,
|
||||
devlink_rate->tx_max, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_RATE_TX_MAX,
|
||||
devlink_rate->tx_max))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u32(msg, DEVLINK_ATTR_RATE_TX_PRIORITY,
|
||||
|
||||
@@ -77,7 +77,7 @@ static int devlink_nl_region_snapshot_id_put(struct sk_buff *msg,
|
||||
|
||||
snap_attr = nla_nest_start_noflag(msg, DEVLINK_ATTR_REGION_SNAPSHOT);
|
||||
if (!snap_attr)
|
||||
return -EINVAL;
|
||||
return -EMSGSIZE;
|
||||
|
||||
err = nla_put_u32(msg, DEVLINK_ATTR_REGION_SNAPSHOT_ID, snapshot->id);
|
||||
if (err)
|
||||
@@ -102,7 +102,7 @@ static int devlink_nl_region_snapshots_id_put(struct sk_buff *msg,
|
||||
snapshots_attr = nla_nest_start_noflag(msg,
|
||||
DEVLINK_ATTR_REGION_SNAPSHOTS);
|
||||
if (!snapshots_attr)
|
||||
return -EINVAL;
|
||||
return -EMSGSIZE;
|
||||
|
||||
list_for_each_entry(snapshot, ®ion->snapshot_list, list) {
|
||||
err = devlink_nl_region_snapshot_id_put(msg, devlink, snapshot);
|
||||
@@ -145,9 +145,7 @@ static int devlink_nl_region_fill(struct sk_buff *msg, struct devlink *devlink,
|
||||
if (err)
|
||||
goto nla_put_failure;
|
||||
|
||||
err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_SIZE,
|
||||
region->size,
|
||||
DEVLINK_ATTR_PAD);
|
||||
err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_SIZE, region->size);
|
||||
if (err)
|
||||
goto nla_put_failure;
|
||||
|
||||
@@ -210,8 +208,8 @@ devlink_nl_region_notify_build(struct devlink_region *region,
|
||||
if (err)
|
||||
goto out_cancel_msg;
|
||||
} else {
|
||||
err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_SIZE,
|
||||
region->size, DEVLINK_ATTR_PAD);
|
||||
err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_SIZE,
|
||||
region->size);
|
||||
if (err)
|
||||
goto out_cancel_msg;
|
||||
}
|
||||
@@ -773,8 +771,7 @@ static int devlink_nl_cmd_region_read_chunk_fill(struct sk_buff *msg,
|
||||
if (err)
|
||||
goto nla_put_failure;
|
||||
|
||||
err = nla_put_u64_64bit(msg, DEVLINK_ATTR_REGION_CHUNK_ADDR, addr,
|
||||
DEVLINK_ATTR_PAD);
|
||||
err = devlink_nl_put_u64(msg, DEVLINK_ATTR_REGION_CHUNK_ADDR, addr);
|
||||
if (err)
|
||||
goto nla_put_failure;
|
||||
|
||||
|
||||
@@ -141,12 +141,12 @@ devlink_resource_size_params_put(struct devlink_resource *resource,
|
||||
struct devlink_resource_size_params *size_params;
|
||||
|
||||
size_params = &resource->size_params;
|
||||
if (nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN,
|
||||
size_params->size_granularity, DEVLINK_ATTR_PAD) ||
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX,
|
||||
size_params->size_max, DEVLINK_ATTR_PAD) ||
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN,
|
||||
size_params->size_min, DEVLINK_ATTR_PAD) ||
|
||||
if (devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_GRAN,
|
||||
size_params->size_granularity) ||
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_MAX,
|
||||
size_params->size_max) ||
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_MIN,
|
||||
size_params->size_min) ||
|
||||
nla_put_u8(skb, DEVLINK_ATTR_RESOURCE_UNIT, size_params->unit))
|
||||
return -EMSGSIZE;
|
||||
return 0;
|
||||
@@ -157,9 +157,8 @@ static int devlink_resource_occ_put(struct devlink_resource *resource,
|
||||
{
|
||||
if (!resource->occ_get)
|
||||
return 0;
|
||||
return nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_OCC,
|
||||
resource->occ_get(resource->occ_get_priv),
|
||||
DEVLINK_ATTR_PAD);
|
||||
return devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_OCC,
|
||||
resource->occ_get(resource->occ_get_priv));
|
||||
}
|
||||
|
||||
static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb,
|
||||
@@ -174,14 +173,12 @@ static int devlink_resource_put(struct devlink *devlink, struct sk_buff *skb,
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (nla_put_string(skb, DEVLINK_ATTR_RESOURCE_NAME, resource->name) ||
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE, resource->size,
|
||||
DEVLINK_ATTR_PAD) ||
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_ID, resource->id,
|
||||
DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE, resource->size) ||
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_ID, resource->id))
|
||||
goto nla_put_failure;
|
||||
if (resource->size != resource->size_new &&
|
||||
nla_put_u64_64bit(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW,
|
||||
resource->size_new, DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(skb, DEVLINK_ATTR_RESOURCE_SIZE_NEW,
|
||||
resource->size_new))
|
||||
goto nla_put_failure;
|
||||
if (devlink_resource_occ_put(resource, skb))
|
||||
goto nla_put_failure;
|
||||
@@ -348,7 +345,7 @@ int devl_resource_register(struct devlink *devlink,
|
||||
|
||||
resource = devlink_resource_find(devlink, NULL, resource_id);
|
||||
if (resource)
|
||||
return -EINVAL;
|
||||
return -EEXIST;
|
||||
|
||||
resource = kzalloc(sizeof(*resource), GFP_KERNEL);
|
||||
if (!resource)
|
||||
@@ -384,39 +381,6 @@ int devl_resource_register(struct devlink *devlink,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devl_resource_register);
|
||||
|
||||
/**
|
||||
* devlink_resource_register - devlink resource register
|
||||
*
|
||||
* @devlink: devlink
|
||||
* @resource_name: resource's name
|
||||
* @resource_size: resource's size
|
||||
* @resource_id: resource's id
|
||||
* @parent_resource_id: resource's parent id
|
||||
* @size_params: size parameters
|
||||
*
|
||||
* Generic resources should reuse the same names across drivers.
|
||||
* Please see the generic resources list at:
|
||||
* Documentation/networking/devlink/devlink-resource.rst
|
||||
*
|
||||
* Context: Takes and release devlink->lock <mutex>.
|
||||
*/
|
||||
int devlink_resource_register(struct devlink *devlink,
|
||||
const char *resource_name,
|
||||
u64 resource_size,
|
||||
u64 resource_id,
|
||||
u64 parent_resource_id,
|
||||
const struct devlink_resource_size_params *size_params)
|
||||
{
|
||||
int err;
|
||||
|
||||
devl_lock(devlink);
|
||||
err = devl_resource_register(devlink, resource_name, resource_size,
|
||||
resource_id, parent_resource_id, size_params);
|
||||
devl_unlock(devlink);
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devlink_resource_register);
|
||||
|
||||
static void devlink_resource_unregister(struct devlink *devlink,
|
||||
struct devlink_resource *resource)
|
||||
{
|
||||
@@ -516,28 +480,6 @@ void devl_resource_occ_get_register(struct devlink *devlink,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devl_resource_occ_get_register);
|
||||
|
||||
/**
|
||||
* devlink_resource_occ_get_register - register occupancy getter
|
||||
*
|
||||
* @devlink: devlink
|
||||
* @resource_id: resource id
|
||||
* @occ_get: occupancy getter callback
|
||||
* @occ_get_priv: occupancy getter callback priv
|
||||
*
|
||||
* Context: Takes and release devlink->lock <mutex>.
|
||||
*/
|
||||
void devlink_resource_occ_get_register(struct devlink *devlink,
|
||||
u64 resource_id,
|
||||
devlink_resource_occ_get_t *occ_get,
|
||||
void *occ_get_priv)
|
||||
{
|
||||
devl_lock(devlink);
|
||||
devl_resource_occ_get_register(devlink, resource_id,
|
||||
occ_get, occ_get_priv);
|
||||
devl_unlock(devlink);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devlink_resource_occ_get_register);
|
||||
|
||||
/**
|
||||
* devl_resource_occ_get_unregister - unregister occupancy getter
|
||||
*
|
||||
@@ -560,20 +502,3 @@ void devl_resource_occ_get_unregister(struct devlink *devlink,
|
||||
resource->occ_get_priv = NULL;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devl_resource_occ_get_unregister);
|
||||
|
||||
/**
|
||||
* devlink_resource_occ_get_unregister - unregister occupancy getter
|
||||
*
|
||||
* @devlink: devlink
|
||||
* @resource_id: resource id
|
||||
*
|
||||
* Context: Takes and release devlink->lock <mutex>.
|
||||
*/
|
||||
void devlink_resource_occ_get_unregister(struct devlink *devlink,
|
||||
u64 resource_id)
|
||||
{
|
||||
devl_lock(devlink);
|
||||
devl_resource_occ_get_unregister(devlink, resource_id);
|
||||
devl_unlock(devlink);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(devlink_resource_occ_get_unregister);
|
||||
|
||||
@@ -189,14 +189,12 @@ devlink_trap_group_stats_put(struct sk_buff *msg,
|
||||
if (!attr)
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_PACKETS,
|
||||
u64_stats_read(&stats.rx_packets),
|
||||
DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_PACKETS,
|
||||
u64_stats_read(&stats.rx_packets)))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_BYTES,
|
||||
u64_stats_read(&stats.rx_bytes),
|
||||
DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_BYTES,
|
||||
u64_stats_read(&stats.rx_bytes)))
|
||||
goto nla_put_failure;
|
||||
|
||||
nla_nest_end(msg, attr);
|
||||
@@ -231,18 +229,15 @@ static int devlink_trap_stats_put(struct sk_buff *msg, struct devlink *devlink,
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (devlink->ops->trap_drop_counter_get &&
|
||||
nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops,
|
||||
DEVLINK_ATTR_PAD))
|
||||
devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_PACKETS,
|
||||
u64_stats_read(&stats.rx_packets),
|
||||
DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_PACKETS,
|
||||
u64_stats_read(&stats.rx_packets)))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_BYTES,
|
||||
u64_stats_read(&stats.rx_bytes),
|
||||
DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_BYTES,
|
||||
u64_stats_read(&stats.rx_bytes)))
|
||||
goto nla_put_failure;
|
||||
|
||||
nla_nest_end(msg, attr);
|
||||
@@ -750,8 +745,7 @@ devlink_trap_policer_stats_put(struct sk_buff *msg, struct devlink *devlink,
|
||||
if (!attr)
|
||||
return -EMSGSIZE;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops,
|
||||
DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_STATS_RX_DROPPED, drops))
|
||||
goto nla_put_failure;
|
||||
|
||||
nla_nest_end(msg, attr);
|
||||
@@ -783,12 +777,12 @@ devlink_nl_trap_policer_fill(struct sk_buff *msg, struct devlink *devlink,
|
||||
policer_item->policer->id))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_TRAP_POLICER_RATE,
|
||||
policer_item->rate, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_TRAP_POLICER_RATE,
|
||||
policer_item->rate))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (nla_put_u64_64bit(msg, DEVLINK_ATTR_TRAP_POLICER_BURST,
|
||||
policer_item->burst, DEVLINK_ATTR_PAD))
|
||||
if (devlink_nl_put_u64(msg, DEVLINK_ATTR_TRAP_POLICER_BURST,
|
||||
policer_item->burst))
|
||||
goto nla_put_failure;
|
||||
|
||||
err = devlink_trap_policer_stats_put(msg, devlink,
|
||||
|
||||
@@ -229,10 +229,15 @@ int dsa_devlink_resource_register(struct dsa_switch *ds,
|
||||
u64 parent_resource_id,
|
||||
const struct devlink_resource_size_params *size_params)
|
||||
{
|
||||
return devlink_resource_register(ds->devlink, resource_name,
|
||||
resource_size, resource_id,
|
||||
parent_resource_id,
|
||||
size_params);
|
||||
int ret;
|
||||
|
||||
devl_lock(ds->devlink);
|
||||
ret = devl_resource_register(ds->devlink, resource_name, resource_size,
|
||||
resource_id, parent_resource_id,
|
||||
size_params);
|
||||
devl_unlock(ds->devlink);
|
||||
|
||||
return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dsa_devlink_resource_register);
|
||||
|
||||
@@ -247,15 +252,19 @@ void dsa_devlink_resource_occ_get_register(struct dsa_switch *ds,
|
||||
devlink_resource_occ_get_t *occ_get,
|
||||
void *occ_get_priv)
|
||||
{
|
||||
return devlink_resource_occ_get_register(ds->devlink, resource_id,
|
||||
occ_get, occ_get_priv);
|
||||
devl_lock(ds->devlink);
|
||||
devl_resource_occ_get_register(ds->devlink, resource_id, occ_get,
|
||||
occ_get_priv);
|
||||
devl_unlock(ds->devlink);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dsa_devlink_resource_occ_get_register);
|
||||
|
||||
void dsa_devlink_resource_occ_get_unregister(struct dsa_switch *ds,
|
||||
u64 resource_id)
|
||||
{
|
||||
devlink_resource_occ_get_unregister(ds->devlink, resource_id);
|
||||
devl_lock(ds->devlink);
|
||||
devl_resource_occ_get_unregister(ds->devlink, resource_id);
|
||||
devl_unlock(ds->devlink);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(dsa_devlink_resource_occ_get_unregister);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user