Unverified Commit 41f4fadb authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Mark Brown
Browse files

ASoC: SOF: topology: 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:

sizeof(struct sof_ipc_ctrl_data) + sizeof(struct sof_ipc_ctrl_value_chan) *
	le32_to_cpu(mc->num_channels)

with:

struct_size(scontrol->control_data, chanv, le32_to_cpu(mc->num_channels))

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 9b33d2e5
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -442,9 +442,8 @@ static int sof_control_load_volume(struct snd_soc_component *scomp,
		return -EINVAL;

	/* init the volume get/put data */
	scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
			 sizeof(struct sof_ipc_ctrl_value_chan) *
			 le32_to_cpu(mc->num_channels);
	scontrol->size = struct_size(scontrol->control_data, chanv,
				     le32_to_cpu(mc->num_channels));
	scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
	if (!scontrol->control_data)
		return -ENOMEM;
@@ -501,9 +500,8 @@ static int sof_control_load_enum(struct snd_soc_component *scomp,
		return -EINVAL;

	/* init the enum get/put data */
	scontrol->size = sizeof(struct sof_ipc_ctrl_data) +
			 sizeof(struct sof_ipc_ctrl_value_chan) *
			 le32_to_cpu(ec->num_channels);
	scontrol->size = struct_size(scontrol->control_data, chanv,
				     le32_to_cpu(ec->num_channels));
	scontrol->control_data = kzalloc(scontrol->size, GFP_KERNEL);
	if (!scontrol->control_data)
		return -ENOMEM;