From: Richard Fitzgerald <rf@opensource.cirrus.com>
To: Thorsten Blum <thorsten.blum@linux.dev>,
David Rhodes <david.rhodes@cirrus.com>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
Takashi Iwai <tiwai@suse.com>
Cc: linux-sound@vger.kernel.org, patches@opensource.cirrus.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ASoC: cs-amp-lib: Replace offsetof() with struct_size()
Date: Mon, 14 Apr 2025 11:00:34 +0100 [thread overview]
Message-ID: <5e48d3fe-1830-4bd4-b882-e2ca435b1c76@opensource.cirrus.com> (raw)
In-Reply-To: <20250414065904.336749-1-thorsten.blum@linux.dev>
On 14/04/2025 7:59 am, Thorsten Blum wrote:
> Use struct_size() to calculate the number of bytes to allocate and used
> by 'cirrus_amp_efi_data'. Compared to offsetof(), struct_size() provides
> additional compile-time checks (e.g., __must_be_array()).
>
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
> ---
> Compile-tested only
> ---
> sound/soc/codecs/cs-amp-lib-test.c | 3 +--
> sound/soc/codecs/cs-amp-lib.c | 2 +-
> 2 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/sound/soc/codecs/cs-amp-lib-test.c b/sound/soc/codecs/cs-amp-lib-test.c
> index 45626f99a417..2369fffb58f7 100644
> --- a/sound/soc/codecs/cs-amp-lib-test.c
> +++ b/sound/soc/codecs/cs-amp-lib-test.c
> @@ -40,8 +40,7 @@ static void cs_amp_lib_test_init_dummy_cal_blob(struct kunit *test, int num_amps
> unsigned int blob_size;
> int i;
>
> - blob_size = offsetof(struct cirrus_amp_efi_data, data) +
> - sizeof(struct cirrus_amp_cal_data) * num_amps;
> + blob_size = struct_size(priv->cal_blob, data, num_amps);
>
> priv->cal_blob = kunit_kzalloc(test, blob_size, GFP_KERNEL);
> KUNIT_ASSERT_NOT_NULL(test, priv->cal_blob);
> diff --git a/sound/soc/codecs/cs-amp-lib.c b/sound/soc/codecs/cs-amp-lib.c
> index c677868c5d5f..c2ce828a96ae 100644
> --- a/sound/soc/codecs/cs-amp-lib.c
> +++ b/sound/soc/codecs/cs-amp-lib.c
> @@ -147,7 +147,7 @@ static struct cirrus_amp_efi_data *cs_amp_get_cal_efi_buffer(struct device *dev)
> dev_dbg(dev, "Calibration: Size=%d, Amp Count=%d\n", efi_data->size, efi_data->count);
>
> if ((efi_data->count > 128) ||
> - offsetof(struct cirrus_amp_efi_data, data[efi_data->count]) > data_size) {
> + struct_size(efi_data, data, efi_data->count) > data_size) {
> dev_err(dev, "EFI cal variable truncated\n");
> ret = -EOVERFLOW;
> goto err;
It should include <linux/overflow.h>
Apart from that
Reviewed-by: Richard Fitzgerald <rf@opensource.cirrus.com>
prev parent reply other threads:[~2025-04-14 10:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-14 6:59 [PATCH] ASoC: cs-amp-lib: Replace offsetof() with struct_size() Thorsten Blum
2025-04-14 10:00 ` Richard Fitzgerald [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5e48d3fe-1830-4bd4-b882-e2ca435b1c76@opensource.cirrus.com \
--to=rf@opensource.cirrus.com \
--cc=broonie@kernel.org \
--cc=david.rhodes@cirrus.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=perex@perex.cz \
--cc=thorsten.blum@linux.dev \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.