devlink: Add helper function for safely copy string param
Devlink string param buffer is allocated at the size of DEVLINK_PARAM_MAX_STRING_VALUE. Add helper function which makes sure this size is not exceeded. Renamed DEVLINK_PARAM_MAX_STRING_VALUE to __DEVLINK_PARAM_MAX_STRING_VALUE to emphasize that it should be used by devlink only. The driver should use the helper function instead to verify it doesn't exceed the allowed length. Signed-off-by: Moshe Shemesh <moshe@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
1276534c98
commit
bde74ad10e
@@ -298,7 +298,7 @@ struct devlink_resource {
|
||||
|
||||
#define DEVLINK_RESOURCE_ID_PARENT_TOP 0
|
||||
|
||||
#define DEVLINK_PARAM_MAX_STRING_VALUE 32
|
||||
#define __DEVLINK_PARAM_MAX_STRING_VALUE 32
|
||||
enum devlink_param_type {
|
||||
DEVLINK_PARAM_TYPE_U8,
|
||||
DEVLINK_PARAM_TYPE_U16,
|
||||
@@ -311,7 +311,7 @@ union devlink_param_value {
|
||||
u8 vu8;
|
||||
u16 vu16;
|
||||
u32 vu32;
|
||||
char vstr[DEVLINK_PARAM_MAX_STRING_VALUE];
|
||||
char vstr[__DEVLINK_PARAM_MAX_STRING_VALUE];
|
||||
bool vbool;
|
||||
};
|
||||
|
||||
@@ -553,6 +553,8 @@ int devlink_param_driverinit_value_get(struct devlink *devlink, u32 param_id,
|
||||
int devlink_param_driverinit_value_set(struct devlink *devlink, u32 param_id,
|
||||
union devlink_param_value init_val);
|
||||
void devlink_param_value_changed(struct devlink *devlink, u32 param_id);
|
||||
void devlink_param_value_str_fill(union devlink_param_value *dst_val,
|
||||
const char *src);
|
||||
struct devlink_region *devlink_region_create(struct devlink *devlink,
|
||||
const char *region_name,
|
||||
u32 region_max_snapshots,
|
||||
@@ -789,6 +791,12 @@ devlink_param_value_changed(struct devlink *devlink, u32 param_id)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void
|
||||
devlink_param_value_str_fill(union devlink_param_value *dst_val,
|
||||
const char *src)
|
||||
{
|
||||
}
|
||||
|
||||
static inline struct devlink_region *
|
||||
devlink_region_create(struct devlink *devlink,
|
||||
const char *region_name,
|
||||
|
||||
Reference in New Issue
Block a user