Commit d00cc2f1 authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Mark Brown

ASoC: Intel: Skylake: Use struct_size() helper

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes, in particular in the
context in which this code is being used.

So, replace the following form:

uuid_params->num_modules * sizeof(struct skl_mod_inst_map) + sizeof(uuid_params->num_modules)

with:

struct_size(params, u.map, uuid_params->num_modules)

and so on...

This code was detected with the help of Coccinelle.
Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 07597910
...@@ -941,9 +941,7 @@ static int skl_tplg_find_moduleid_from_uuid(struct skl *skl, ...@@ -941,9 +941,7 @@ static int skl_tplg_find_moduleid_from_uuid(struct skl *skl,
if (bc->set_params == SKL_PARAM_BIND && bc->max) { if (bc->set_params == SKL_PARAM_BIND && bc->max) {
uuid_params = (struct skl_kpb_params *)bc->params; uuid_params = (struct skl_kpb_params *)bc->params;
size = uuid_params->num_modules * size = struct_size(params, u.map, uuid_params->num_modules);
sizeof(struct skl_mod_inst_map) +
sizeof(uuid_params->num_modules);
params = devm_kzalloc(bus->dev, size, GFP_KERNEL); params = devm_kzalloc(bus->dev, size, GFP_KERNEL);
if (!params) if (!params)
...@@ -3315,7 +3313,7 @@ static int skl_tplg_get_int_tkn(struct device *dev, ...@@ -3315,7 +3313,7 @@ static int skl_tplg_get_int_tkn(struct device *dev,
struct snd_soc_tplg_vendor_value_elem *tkn_elem, struct snd_soc_tplg_vendor_value_elem *tkn_elem,
struct skl *skl) struct skl *skl)
{ {
int tkn_count = 0, ret, size; int tkn_count = 0, ret;
static int mod_idx, res_val_idx, intf_val_idx, dir, pin_idx; static int mod_idx, res_val_idx, intf_val_idx, dir, pin_idx;
struct skl_module_res *res = NULL; struct skl_module_res *res = NULL;
struct skl_module_iface *fmt = NULL; struct skl_module_iface *fmt = NULL;
...@@ -3323,6 +3321,7 @@ static int skl_tplg_get_int_tkn(struct device *dev, ...@@ -3323,6 +3321,7 @@ static int skl_tplg_get_int_tkn(struct device *dev,
static struct skl_astate_param *astate_table; static struct skl_astate_param *astate_table;
static int astate_cfg_idx, count; static int astate_cfg_idx, count;
int i; int i;
size_t size;
if (skl->modules) { if (skl->modules) {
mod = skl->modules[mod_idx]; mod = skl->modules[mod_idx];
...@@ -3366,8 +3365,8 @@ static int skl_tplg_get_int_tkn(struct device *dev, ...@@ -3366,8 +3365,8 @@ static int skl_tplg_get_int_tkn(struct device *dev,
return -EINVAL; return -EINVAL;
} }
size = tkn_elem->value * sizeof(struct skl_astate_param) + size = struct_size(skl->cfg.astate_cfg, astate_table,
sizeof(count); tkn_elem->value);
skl->cfg.astate_cfg = devm_kzalloc(dev, size, GFP_KERNEL); skl->cfg.astate_cfg = devm_kzalloc(dev, size, GFP_KERNEL);
if (!skl->cfg.astate_cfg) if (!skl->cfg.astate_cfg)
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment