[PATCH] ASoC: amd: acp: Use IS_REACHABLE() for SND_SOC_ACPI_AMD_SDCA_QUIRKS guard

Syed Saba Kareem posted 1 patch 1 week, 5 days ago
sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ASoC: amd: acp: Use IS_REACHABLE() for SND_SOC_ACPI_AMD_SDCA_QUIRKS guard
Posted by Syed Saba Kareem 1 week, 5 days ago
From: Syed Saba Kareem <Syed.SabaKareem@amd.com>

Fix a build failure when CONFIG_SND_SOC_ACPI_AMD_MATCH=y (built-in) and
CONFIG_SND_SOC_ACPI_AMD_SDCA_QUIRKS=m (module):

  x86_64-linux-ld: sound/soc/amd/acp/amd-acp70-acpi-match.o:(.data+0xf00):
    undefined reference to `snd_soc_acpi_amd_sdca_is_device_rt712_vb'

The header guard uses IS_ENABLED() which evaluates to true for both =y
and =m configs. This causes the real function declaration to be used even
when the symbol is only available in a loadable module, resulting in an
undefined reference when the caller is built-in.

Replace IS_ENABLED() with IS_REACHABLE() which correctly evaluates to
false when the dependency is a module but the caller is built-in, causing
the static inline stub to be used instead.

Fixes: 10d366a846be ("ASoC: amd: acp: Fix Kconfig dependencies for SND_SOC_ACPI_AMD_SDCA_QUIRKS")
Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com>
---
 sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h b/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h
index 0e644e71e76f..66df37d29d84 100644
--- a/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h
+++ b/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h
@@ -9,7 +9,7 @@
 #ifndef _SND_SOC_ACPI_AMD_SDCA_QUIRKS
 #define _SND_SOC_ACPI_AMD_SDCA_QUIRKS
 
-#if IS_ENABLED(CONFIG_SND_SOC_ACPI_AMD_SDCA_QUIRKS)
+#if IS_REACHABLE(CONFIG_SND_SOC_ACPI_AMD_SDCA_QUIRKS)
 
 bool snd_soc_acpi_amd_sdca_is_device_rt712_vb(void *arg);
 
-- 
2.43.0
Re: [PATCH] ASoC: amd: acp: Use IS_REACHABLE() for SND_SOC_ACPI_AMD_SDCA_QUIRKS guard
Posted by Syed Saba Kareem 1 week, 5 days ago
On 5/27/26 19:02, Syed Saba Kareem wrote:
> From: Syed Saba Kareem <Syed.SabaKareem@amd.com>
>
> Fix a build failure when CONFIG_SND_SOC_ACPI_AMD_MATCH=y (built-in) and
> CONFIG_SND_SOC_ACPI_AMD_SDCA_QUIRKS=m (module):
>
>    x86_64-linux-ld: sound/soc/amd/acp/amd-acp70-acpi-match.o:(.data+0xf00):
>      undefined reference to `snd_soc_acpi_amd_sdca_is_device_rt712_vb'
>
> The header guard uses IS_ENABLED() which evaluates to true for both =y
> and =m configs. This causes the real function declaration to be used even
> when the symbol is only available in a loadable module, resulting in an
> undefined reference when the caller is built-in.
>
> Replace IS_ENABLED() with IS_REACHABLE() which correctly evaluates to
> false when the dependency is a module but the caller is built-in, causing
> the static inline stub to be used instead.
>
> Fixes: 10d366a846be ("ASoC: amd: acp: Fix Kconfig dependencies for SND_SOC_ACPI_AMD_SDCA_QUIRKS")
> Signed-off-by: Syed Saba Kareem <Syed.SabaKareem@amd.com>
> ---
>   sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h b/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h
> index 0e644e71e76f..66df37d29d84 100644
> --- a/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h
> +++ b/sound/soc/amd/acp/soc-acpi-amd-sdca-quirks.h
> @@ -9,7 +9,7 @@
>   #ifndef _SND_SOC_ACPI_AMD_SDCA_QUIRKS
>   #define _SND_SOC_ACPI_AMD_SDCA_QUIRKS
>   
> -#if IS_ENABLED(CONFIG_SND_SOC_ACPI_AMD_SDCA_QUIRKS)
> +#if IS_REACHABLE(CONFIG_SND_SOC_ACPI_AMD_SDCA_QUIRKS)
>   
>   bool snd_soc_acpi_amd_sdca_is_device_rt712_vb(void *arg);
>   

As per Arnd Bergmann offline comments this fix wont work , will send a 
another patch with proper fix.
Please discard this patch.