sound/soc/tegra/tegra210_adx.c | 12 ++++-------- sound/soc/tegra/tegra210_adx.h | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-)
Replace the pointer-based map allocation with a flexible array
member and use struct_size() for allocation. This simplifies
the code and avoid an extra allocation.
Assisted-by: opencode:big-pickle
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
sound/soc/tegra/tegra210_adx.c | 12 ++++--------
sound/soc/tegra/tegra210_adx.h | 2 +-
2 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/sound/soc/tegra/tegra210_adx.c b/sound/soc/tegra/tegra210_adx.c
index 9175598b52a7..d607ba4233b6 100644
--- a/sound/soc/tegra/tegra210_adx.c
+++ b/sound/soc/tegra/tegra210_adx.c
@@ -677,11 +677,13 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev)
void __iomem *regs;
int err, i;
- adx = devm_kzalloc(dev, sizeof(*adx), GFP_KERNEL);
+ soc_data = of_device_get_match_data(dev);
+ adx = devm_kzalloc(dev,
+ struct_size(adx, map, soc_data->ram_depth * TEGRA_ADX_SLOTS_PER_WORD),
+ GFP_KERNEL);
if (!adx)
return -ENOMEM;
- soc_data = of_device_get_match_data(dev);
adx->soc_data = soc_data;
dev_set_drvdata(dev, adx);
@@ -698,12 +700,6 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev)
regcache_cache_only(adx->regmap, true);
- adx->map = devm_kcalloc(dev,
- soc_data->ram_depth * TEGRA_ADX_SLOTS_PER_WORD,
- sizeof(*adx->map), GFP_KERNEL);
- if (!adx->map)
- return -ENOMEM;
-
adx->byte_mask = devm_kcalloc(dev, soc_data->byte_mask_size,
sizeof(*adx->byte_mask), GFP_KERNEL);
if (!adx->byte_mask)
diff --git a/sound/soc/tegra/tegra210_adx.h b/sound/soc/tegra/tegra210_adx.h
index a6298c3dcca5..e5f1b44b2e76 100644
--- a/sound/soc/tegra/tegra210_adx.h
+++ b/sound/soc/tegra/tegra210_adx.h
@@ -92,8 +92,8 @@ struct tegra210_adx_soc_data {
struct tegra210_adx {
struct regmap *regmap;
unsigned int *byte_mask;
- u16 *map;
const struct tegra210_adx_soc_data *soc_data;
+ u16 map[];
};
#endif
--
2.55.0
On Fri, 14 Aug 2026 13:50:18 -0700, Rosen Penev wrote:
> ASoC: tegra: ADX: convert map to flexible array
Applied to
https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-7.4
Thanks!
[1/1] ASoC: tegra: ADX: convert map to flexible array
https://git.kernel.org/broonie/asoc/c/caae0e2d1718
All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying
to this mail.
Thanks,
Mark
On Fri, Aug 14, 2026 at 01:50:18PM -0700, Rosen Penev wrote: > Replace the pointer-based map allocation with a flexible array > member and use struct_size() for allocation. This simplifies > the code and avoid an extra allocation. > > Assisted-by: opencode:big-pickle > Signed-off-by: Rosen Penev <rosenp@gmail.com> > --- > sound/soc/tegra/tegra210_adx.c | 12 ++++-------- > sound/soc/tegra/tegra210_adx.h | 2 +- > 2 files changed, 5 insertions(+), 9 deletions(-) > > diff --git a/sound/soc/tegra/tegra210_adx.c b/sound/soc/tegra/tegra210_adx.c > index 9175598b52a7..d607ba4233b6 100644 > --- a/sound/soc/tegra/tegra210_adx.c > +++ b/sound/soc/tegra/tegra210_adx.c > @@ -677,11 +677,13 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev) > void __iomem *regs; > int err, i; > > - adx = devm_kzalloc(dev, sizeof(*adx), GFP_KERNEL); > + soc_data = of_device_get_match_data(dev); > + adx = devm_kzalloc(dev, > + struct_size(adx, map, soc_data->ram_depth * TEGRA_ADX_SLOTS_PER_WORD), > + GFP_KERNEL); This is slightly hideous. Maybe add a temporary "count" variable for readability? Either way, though, this looks correct: Reviewed-by: Thierry Reding <treding@nvidia.com>
On Tue Aug 18, 2026 at 4:04 AM PDT, Thierry Reding wrote: > On Fri, Aug 14, 2026 at 01:50:18PM -0700, Rosen Penev wrote: >> Replace the pointer-based map allocation with a flexible array >> member and use struct_size() for allocation. This simplifies >> the code and avoid an extra allocation. >> >> Assisted-by: opencode:big-pickle >> Signed-off-by: Rosen Penev <rosenp@gmail.com> >> --- >> sound/soc/tegra/tegra210_adx.c | 12 ++++-------- >> sound/soc/tegra/tegra210_adx.h | 2 +- >> 2 files changed, 5 insertions(+), 9 deletions(-) >> >> diff --git a/sound/soc/tegra/tegra210_adx.c b/sound/soc/tegra/tegra210_adx.c >> index 9175598b52a7..d607ba4233b6 100644 >> --- a/sound/soc/tegra/tegra210_adx.c >> +++ b/sound/soc/tegra/tegra210_adx.c >> @@ -677,11 +677,13 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev) >> void __iomem *regs; >> int err, i; >> >> - adx = devm_kzalloc(dev, sizeof(*adx), GFP_KERNEL); >> + soc_data = of_device_get_match_data(dev); >> + adx = devm_kzalloc(dev, >> + struct_size(adx, map, soc_data->ram_depth * TEGRA_ADX_SLOTS_PER_WORD), >> + GFP_KERNEL); > > This is slightly hideous. Maybe add a temporary "count" variable for > readability? The reason for this is to allow a treewide conversion of this when devm_kzalloc_flex() gets introduced. > > Either way, though, this looks correct: > > Reviewed-by: Thierry Reding <treding@nvidia.com>
On Tue, Aug 18, 2026 at 01:33:45PM -0700, Rosen Penev wrote: > On Tue Aug 18, 2026 at 4:04 AM PDT, Thierry Reding wrote: > > On Fri, Aug 14, 2026 at 01:50:18PM -0700, Rosen Penev wrote: > >> Replace the pointer-based map allocation with a flexible array > >> member and use struct_size() for allocation. This simplifies > >> the code and avoid an extra allocation. > >> > >> Assisted-by: opencode:big-pickle > >> Signed-off-by: Rosen Penev <rosenp@gmail.com> > >> --- > >> sound/soc/tegra/tegra210_adx.c | 12 ++++-------- > >> sound/soc/tegra/tegra210_adx.h | 2 +- > >> 2 files changed, 5 insertions(+), 9 deletions(-) > >> > >> diff --git a/sound/soc/tegra/tegra210_adx.c b/sound/soc/tegra/tegra210_adx.c > >> index 9175598b52a7..d607ba4233b6 100644 > >> --- a/sound/soc/tegra/tegra210_adx.c > >> +++ b/sound/soc/tegra/tegra210_adx.c > >> @@ -677,11 +677,13 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev) > >> void __iomem *regs; > >> int err, i; > >> > >> - adx = devm_kzalloc(dev, sizeof(*adx), GFP_KERNEL); > >> + soc_data = of_device_get_match_data(dev); > >> + adx = devm_kzalloc(dev, > >> + struct_size(adx, map, soc_data->ram_depth * TEGRA_ADX_SLOTS_PER_WORD), > >> + GFP_KERNEL); > > > > This is slightly hideous. Maybe add a temporary "count" variable for > > readability? > The reason for this is to allow a treewide conversion of this when > devm_kzalloc_flex() gets introduced. Huh? Why not do this right away, then? It's a waste of everyone's time to do these two-staged "cleanups". You're making maintainers do the work twice for no benefit whatsoever. Thierry
On Thu, Aug 20, 2026 at 3:20 AM Thierry Reding <thierry.reding@kernel.org> wrote: > > On Tue, Aug 18, 2026 at 01:33:45PM -0700, Rosen Penev wrote: > > On Tue Aug 18, 2026 at 4:04 AM PDT, Thierry Reding wrote: > > > On Fri, Aug 14, 2026 at 01:50:18PM -0700, Rosen Penev wrote: > > >> Replace the pointer-based map allocation with a flexible array > > >> member and use struct_size() for allocation. This simplifies > > >> the code and avoid an extra allocation. > > >> > > >> Assisted-by: opencode:big-pickle > > >> Signed-off-by: Rosen Penev <rosenp@gmail.com> > > >> --- > > >> sound/soc/tegra/tegra210_adx.c | 12 ++++-------- > > >> sound/soc/tegra/tegra210_adx.h | 2 +- > > >> 2 files changed, 5 insertions(+), 9 deletions(-) > > >> > > >> diff --git a/sound/soc/tegra/tegra210_adx.c b/sound/soc/tegra/tegra210_adx.c > > >> index 9175598b52a7..d607ba4233b6 100644 > > >> --- a/sound/soc/tegra/tegra210_adx.c > > >> +++ b/sound/soc/tegra/tegra210_adx.c > > >> @@ -677,11 +677,13 @@ static int tegra210_adx_platform_probe(struct platform_device *pdev) > > >> void __iomem *regs; > > >> int err, i; > > >> > > >> - adx = devm_kzalloc(dev, sizeof(*adx), GFP_KERNEL); > > >> + soc_data = of_device_get_match_data(dev); > > >> + adx = devm_kzalloc(dev, > > >> + struct_size(adx, map, soc_data->ram_depth * TEGRA_ADX_SLOTS_PER_WORD), > > >> + GFP_KERNEL); > > > > > > This is slightly hideous. Maybe add a temporary "count" variable for > > > readability? > > The reason for this is to allow a treewide conversion of this when > > devm_kzalloc_flex() gets introduced. > > Huh? Why not do this right away, then? It's a waste of everyone's time > to do these two-staged "cleanups". You're making maintainers do the work > twice for no benefit whatsoever. I'm not handling that patchset. That's the linux hardening people. > > Thierry
© 2016 - 2026 Red Hat, Inc.