Re: [PATCH] ALSA: aw2-alsa: select SND_PCM
From: Jude Gyimah
Date: Fri Nov 13 2026 - 07:36:01 EST
> Applied now. It's interesting why this wasn't caught by build tests
> for long time...
Thanks for applying it.
Yes i agree. Quite interesting that this flew under the radar.
The short answer is that none of the stock configurations can express
the combination, and each one misses it for a different reason. On
arm64 at v7.3:
defconfig SND_AW2 not set SND_PCM=m caller absent
allmodconfig SND_AW2=m SND_PCM=m caller is a module too
allyesconfig SND_AW2=y SND_PCM=y provider built in
allnoconfig neither set
The failure needs SND_AW2=y while SND_PCM=m, and allmodconfig and
allyesconfig are each wrong in exactly one coordinate.
randconfig can express it but is unlikely to find it. And the reason is
kinda counter-intuitive i.e., 110 stanzas in 44 Kconfig files select SND_PCM.
Any one of them at =y pins SND_PCM=y and hides every caller that does not
select it. So the configuration has to put all 110 at m or n and this
driver at y. Treating the tristates as independent and uniform (which
randconfig and tristates are not, since most sit behind PCI or a
platform) that is on the order of (2/3)^110. The real figure will be
different, but the shape is right. The more drivers select a provider,
the better hidden the one driver that forgot to.
So SND_PCM being selected by almost everything is what protected this
bug rather than what would have exposed it. A sampler would have to be
lucky in 110 places at once. Solving for the assignment instead takes
it in one step, which is what turned this up.
It is not a one-off. The same y/m shape found 14 missing selects in
sound/, all of them now applied i.e., five Rockchip, three fsl, sunxi,
four Amlogic, and this. Reproducer configurations and the failing
vmlinux link log for each are published at
https://github.com/JGyimah/kreach under results/, if the ALSA side is
ever interested in running it over sound/ before a merge window.
Best,
Jude