From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.5 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9FDB3C4320A for ; Wed, 25 Aug 2021 11:59:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 85CD561176 for ; Wed, 25 Aug 2021 11:59:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240410AbhHYMAO (ORCPT ); Wed, 25 Aug 2021 08:00:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238434AbhHYMAO (ORCPT ); Wed, 25 Aug 2021 08:00:14 -0400 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 90FD1C061757; Wed, 25 Aug 2021 04:59:28 -0700 (PDT) Received: by mail-lf1-x12c.google.com with SMTP id bq28so3964159lfb.7; Wed, 25 Aug 2021 04:59:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=Sh8Hhajj0pnPnQiiu2aiUUMwiCEAyqctL4Ajg0R6YEk=; b=B991xy72YQIKeK0YL5CfnvOiwxExWCwzKOYLrnvKItU/etqhJMEKUz7vP9FXPGV+tN R835TLWh68zmwjW6AD/WIdDH9ucNKaeetxUlQEB1f1faIk6+LeE/obwFpDi27ryBN/5s oK41Udd/lIgQD3ZgHCMv7tDY0u1AiGAujDl1gJotGb4wI4NiGhjuQJlb6tHaIqHLSgxu n7dwouk7paFuajiTYIjBAHmWSGj+asfv7tTZN5hjDR29CmqHfTJePRDiXsKGO7yfsWpv FH/lspZH+agBQkPTOaZeuwaCVkBz7OTVMklUjSm+glte/NAt0uO12lWT+CPt+Qv9+Lut zsyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Sh8Hhajj0pnPnQiiu2aiUUMwiCEAyqctL4Ajg0R6YEk=; b=sqes4Jy+Oa0rRNO4X9+sruIQ8OuhoaY5Ikq1CLu48nbtdylZM6wlMThklm2yt4ewSk 4e1bzLlNj+UaNWicAo7bAGymAiVDygKkW5u1mnGm75U9grCQjSRYsuNf22m2E+xv8+KC Hq6gO6gFGG/6eEmY5cOMD///9CgbTLjFxnwQBF2hW/fmT8wiJM7TSGS8tMaNOLIDRGKE LTQJUPj6jwcrO/b71iEOccUsjrGUiESNm5vdPIU+Gbtqi5kGYqJrb/jNLPNJTsUmkRdo ZAcb6uBdrgikWKnXU181pG8V9NFvWtqw2CuHHzunzw1ifei3TOoTHEiXTG/VDihRWEsk S2NA== X-Gm-Message-State: AOAM5318hc7IaD40CundDYxwr+6p9G4QvS1hVGtVWtL0OFwC/a28oyBW 74Tbh5Xzp4d5AMVYn88Vxgd8685la8UbDs5k7U0= X-Google-Smtp-Source: ABdhPJxKumqkjQ/ZfaCK/Nc1KFD2ooxUYCqnUe8SWu8yZCKpTaP98/h7PeQqDZDQpVbBRdfWVKdV/A== X-Received: by 2002:a19:c350:: with SMTP id t77mr1506784lff.33.1629892766712; Wed, 25 Aug 2021 04:59:26 -0700 (PDT) Received: from [10.0.0.40] (91-155-111-71.elisa-laajakaista.fi. [91.155.111.71]) by smtp.gmail.com with ESMTPSA id k23sm2104796ljg.73.2021.08.25.04.59.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Aug 2021 04:59:26 -0700 (PDT) Subject: Re: [PATCH] kconfig: forbid symbols that end with '_MODULE' To: Masahiro Yamada , linux-kbuild@vger.kernel.org, arnd@arndb.de Cc: "David S. Miller" , Jakub Kicinski , Jaroslav Kysela , Kalle Valo , Liam Girdwood , Luca Coelho , Mark Brown , Takashi Iwai , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org References: <20210825041637.365171-1-masahiroy@kernel.org> From: =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= Message-ID: <9df591f6-53fc-4567-8758-0eb1be4eade5@gmail.com> Date: Wed, 25 Aug 2021 14:59:44 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20210825041637.365171-1-masahiroy@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Hi, On 25/08/2021 07:16, Masahiro Yamada wrote: > Kconfig (syncconfig) generates include/generated/autoconf.h to make > CONFIG options available to the pre-processor. > > The macros are suffixed with '_MODULE' for symbols with the value 'm'. > > Here is a conflict; CONFIG_FOO=m results in '#define CONFIG_FOO_MODULE 1', > but CONFIG_FOO_MODULE=y also results in the same define. > > fixdep always assumes CONFIG_FOO_MODULE comes from CONFIG_FOO=m, so the > dependency is not properly tracked for symbols that end with '_MODULE'. > > This commit makes Kconfig error out if it finds a symbol suffixed with > '_MODULE'. This restriction does not exist if the module feature is not > supported (at least from the Kconfig perspective). > > It detected one error: > error: SND_SOC_DM365_VOICE_CODEC_MODULE: symbol name must not end with '_MODULE' > > Rename it to SND_SOC_DM365_VOICE_CODEC_MODULAR. Commit 147162f57515 > ("ASoC: ti: fix SND_SOC_DM365_VOICE_CODEC dependencies") added it for > internal use. So, this renaming has no impact on users. > > Remove a comment from drivers/net/wireless/intel/iwlwifi/Kconfig since > this is a hard error now. > > Add a comment to include/linux/kconfig.h in order not to worry observant > developers. > > Signed-off-by: Masahiro Yamada > --- > > drivers/net/wireless/intel/iwlwifi/Kconfig | 1 - > include/linux/kconfig.h | 3 ++ > scripts/kconfig/parser.y | 40 +++++++++++++++++++++- > sound/soc/ti/Kconfig | 2 +- > 4 files changed, 43 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/intel/iwlwifi/Kconfig b/drivers/net/wireless/intel/iwlwifi/Kconfig > index 1085afbefba8..5b238243617c 100644 > --- a/drivers/net/wireless/intel/iwlwifi/Kconfig > +++ b/drivers/net/wireless/intel/iwlwifi/Kconfig > @@ -70,7 +70,6 @@ config IWLMVM > of the devices that use this firmware is available here: > https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware > > -# don't call it _MODULE -- will confuse Kconfig/fixdep/... > config IWLWIFI_OPMODE_MODULAR > bool > default y if IWLDVM=m > diff --git a/include/linux/kconfig.h b/include/linux/kconfig.h > index 20d1079e92b4..54f677e742fe 100644 > --- a/include/linux/kconfig.h > +++ b/include/linux/kconfig.h > @@ -53,6 +53,9 @@ > * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0 > * otherwise. CONFIG_FOO=m results in "#define CONFIG_FOO_MODULE 1" in > * autoconf.h. > + * CONFIG_FOO_MODULE=y would also result in "#define CONFIG_FOO_MODULE 1", > + * but Kconfig forbids symbol names that end with '_MODULE', so that would > + * not happen. > */ > #define IS_MODULE(option) __is_defined(option##_MODULE) > > diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y > index 2af7ce4e1531..b0f73f74ccd3 100644 > --- a/scripts/kconfig/parser.y > +++ b/scripts/kconfig/parser.y > @@ -475,6 +475,37 @@ assign_val: > > %% > > +/* > + * Symbols suffixed with '_MODULE' would cause a macro conflict in autoconf.h, > + * and also confuse the interaction between syncconfig and fixdep. > + * Error out if a symbol with the '_MODULE' suffix is found. > + */ > +static int sym_check_name(struct symbol *sym) > +{ > + static const char *suffix = "_MODULE"; > + static const size_t suffix_len = strlen("_MODULE"); > + char *name; > + size_t len; > + > + name = sym->name; > + > + if (!name) > + return 0; > + > + len = strlen(name); > + > + if (len < suffix_len) > + return 0; > + > + if (strcmp(name + len - suffix_len, suffix)) > + return 0; > + > + fprintf(stderr, "error: %s: symbol name must not end with '%s'\n", > + name, suffix); > + > + return -1; > +} > + > void conf_parse(const char *name) > { > struct symbol *sym; > @@ -493,8 +524,15 @@ void conf_parse(const char *name) > > if (yynerrs) > exit(1); > - if (!modules_sym) > + > + if (modules_sym) { > + for_all_symbols(i, sym) { > + if (sym_check_name(sym)) > + yynerrs++; > + } > + } else { > modules_sym = sym_find( "n" ); > + } > > if (!menu_has_prompt(&rootmenu)) { > current_entry = &rootmenu; > diff --git a/sound/soc/ti/Kconfig b/sound/soc/ti/Kconfig > index 698d7bc84dcf..c56a5789056f 100644 > --- a/sound/soc/ti/Kconfig > +++ b/sound/soc/ti/Kconfig > @@ -211,7 +211,7 @@ config SND_SOC_DM365_VOICE_CODEC > Say Y if you want to add support for SoC On-chip voice codec > endchoice > > -config SND_SOC_DM365_VOICE_CODEC_MODULE > +config SND_SOC_DM365_VOICE_CODEC_MODULAR This Kconfig option is only used to select the codecs needed for the voice mode, I think it would be better to use something like SND_SOC_DM365_SELECT_VOICE_CODECS ? > def_tristate y > depends on SND_SOC_DM365_VOICE_CODEC && SND_SOC > select MFD_DAVINCI_VOICECODEC > -- Péter From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-14.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77450C4338F for ; Wed, 25 Aug 2021 12:00:26 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 127F761178 for ; Wed, 25 Aug 2021 12:00:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 127F761178 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id B69111662; Wed, 25 Aug 2021 13:59:32 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz B69111662 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1629892822; bh=fHxj9vn9A7HYMysygAdNL9lyIa2Wxc3BwC6sN107Ubw=; h=Subject:To:References:From:Date:In-Reply-To:Cc:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=AmRAb9zO0I2q10JmXpcFXbMh7CSYh93GE5tzmV+EN3lR/yEoOh5pPDxlf1FSxZYFQ NCQQURV+XwYoUMYhjGMf6l6auv/dkc+Z7KFgsNUWXuT4lMm2PXD+L6NAdMQw4A2VHN 5h5mtSigQWjt9YhfDWqVSJiiOtVvwwZnMOBa5CJQ= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id 503BFF8003C; Wed, 25 Aug 2021 13:59:32 +0200 (CEST) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 96B65F8020C; Wed, 25 Aug 2021 13:59:30 +0200 (CEST) Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id F2C3DF8003C for ; Wed, 25 Aug 2021 13:59:27 +0200 (CEST) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz F2C3DF8003C Authentication-Results: alsa1.perex.cz; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B991xy72" Received: by mail-lf1-x132.google.com with SMTP id x27so52397976lfu.5 for ; Wed, 25 Aug 2021 04:59:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=Sh8Hhajj0pnPnQiiu2aiUUMwiCEAyqctL4Ajg0R6YEk=; b=B991xy72YQIKeK0YL5CfnvOiwxExWCwzKOYLrnvKItU/etqhJMEKUz7vP9FXPGV+tN R835TLWh68zmwjW6AD/WIdDH9ucNKaeetxUlQEB1f1faIk6+LeE/obwFpDi27ryBN/5s oK41Udd/lIgQD3ZgHCMv7tDY0u1AiGAujDl1gJotGb4wI4NiGhjuQJlb6tHaIqHLSgxu n7dwouk7paFuajiTYIjBAHmWSGj+asfv7tTZN5hjDR29CmqHfTJePRDiXsKGO7yfsWpv FH/lspZH+agBQkPTOaZeuwaCVkBz7OTVMklUjSm+glte/NAt0uO12lWT+CPt+Qv9+Lut zsyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=Sh8Hhajj0pnPnQiiu2aiUUMwiCEAyqctL4Ajg0R6YEk=; b=UKIUlphZGLjudrpMzmYWGwWy8k81uMhkrMi2AQ0MJpehZ9ZtWJP9+EYKD5GNasA8Ca 7n2E36A01OMnbN7rGIvL+Tgb1+SBloLx25cjjxSgHL1pE3UtVC/GrPCcGO7WDVtCV4ro 5lZOkNW2xCx6dDftbjWPqPY64MSItJp0gk2XWPOBM2NXxGPttmiIuQuRG/0CNp1mw2TL jNqshuZMVyYv8V12BXsmznFHn/3UaqzRnaSDpOHoXHbOulF9EsIfekytCOZM1UJAfXAX xyNtPSF+4M7BT4gTso5dUSF/bqrhoGLr41v1bIxYAYaxh2BFZQ5FuZQ01n36CzGrk07k g2yg== X-Gm-Message-State: AOAM532STrgWLehkMzsRaisVTKbol75uOS1hhTVtlhJnbC2VnRtT7A8p TRfLPp9uhFi2YS0QhCwxqj4= X-Google-Smtp-Source: ABdhPJxKumqkjQ/ZfaCK/Nc1KFD2ooxUYCqnUe8SWu8yZCKpTaP98/h7PeQqDZDQpVbBRdfWVKdV/A== X-Received: by 2002:a19:c350:: with SMTP id t77mr1506784lff.33.1629892766712; Wed, 25 Aug 2021 04:59:26 -0700 (PDT) Received: from [10.0.0.40] (91-155-111-71.elisa-laajakaista.fi. [91.155.111.71]) by smtp.gmail.com with ESMTPSA id k23sm2104796ljg.73.2021.08.25.04.59.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Aug 2021 04:59:26 -0700 (PDT) Subject: Re: [PATCH] kconfig: forbid symbols that end with '_MODULE' To: Masahiro Yamada , linux-kbuild@vger.kernel.org, arnd@arndb.de References: <20210825041637.365171-1-masahiroy@kernel.org> From: =?UTF-8?Q?P=c3=a9ter_Ujfalusi?= Message-ID: <9df591f6-53fc-4567-8758-0eb1be4eade5@gmail.com> Date: Wed, 25 Aug 2021 14:59:44 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20210825041637.365171-1-masahiroy@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Takashi Iwai , linux-wireless@vger.kernel.org, Liam Girdwood , Mark Brown , Luca Coelho , netdev@vger.kernel.org, Jakub Kicinski , "David S. Miller" , Kalle Valo X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" Hi, On 25/08/2021 07:16, Masahiro Yamada wrote: > Kconfig (syncconfig) generates include/generated/autoconf.h to make > CONFIG options available to the pre-processor. > > The macros are suffixed with '_MODULE' for symbols with the value 'm'. > > Here is a conflict; CONFIG_FOO=m results in '#define CONFIG_FOO_MODULE 1', > but CONFIG_FOO_MODULE=y also results in the same define. > > fixdep always assumes CONFIG_FOO_MODULE comes from CONFIG_FOO=m, so the > dependency is not properly tracked for symbols that end with '_MODULE'. > > This commit makes Kconfig error out if it finds a symbol suffixed with > '_MODULE'. This restriction does not exist if the module feature is not > supported (at least from the Kconfig perspective). > > It detected one error: > error: SND_SOC_DM365_VOICE_CODEC_MODULE: symbol name must not end with '_MODULE' > > Rename it to SND_SOC_DM365_VOICE_CODEC_MODULAR. Commit 147162f57515 > ("ASoC: ti: fix SND_SOC_DM365_VOICE_CODEC dependencies") added it for > internal use. So, this renaming has no impact on users. > > Remove a comment from drivers/net/wireless/intel/iwlwifi/Kconfig since > this is a hard error now. > > Add a comment to include/linux/kconfig.h in order not to worry observant > developers. > > Signed-off-by: Masahiro Yamada > --- > > drivers/net/wireless/intel/iwlwifi/Kconfig | 1 - > include/linux/kconfig.h | 3 ++ > scripts/kconfig/parser.y | 40 +++++++++++++++++++++- > sound/soc/ti/Kconfig | 2 +- > 4 files changed, 43 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/wireless/intel/iwlwifi/Kconfig b/drivers/net/wireless/intel/iwlwifi/Kconfig > index 1085afbefba8..5b238243617c 100644 > --- a/drivers/net/wireless/intel/iwlwifi/Kconfig > +++ b/drivers/net/wireless/intel/iwlwifi/Kconfig > @@ -70,7 +70,6 @@ config IWLMVM > of the devices that use this firmware is available here: > https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware > > -# don't call it _MODULE -- will confuse Kconfig/fixdep/... > config IWLWIFI_OPMODE_MODULAR > bool > default y if IWLDVM=m > diff --git a/include/linux/kconfig.h b/include/linux/kconfig.h > index 20d1079e92b4..54f677e742fe 100644 > --- a/include/linux/kconfig.h > +++ b/include/linux/kconfig.h > @@ -53,6 +53,9 @@ > * IS_MODULE(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'm', 0 > * otherwise. CONFIG_FOO=m results in "#define CONFIG_FOO_MODULE 1" in > * autoconf.h. > + * CONFIG_FOO_MODULE=y would also result in "#define CONFIG_FOO_MODULE 1", > + * but Kconfig forbids symbol names that end with '_MODULE', so that would > + * not happen. > */ > #define IS_MODULE(option) __is_defined(option##_MODULE) > > diff --git a/scripts/kconfig/parser.y b/scripts/kconfig/parser.y > index 2af7ce4e1531..b0f73f74ccd3 100644 > --- a/scripts/kconfig/parser.y > +++ b/scripts/kconfig/parser.y > @@ -475,6 +475,37 @@ assign_val: > > %% > > +/* > + * Symbols suffixed with '_MODULE' would cause a macro conflict in autoconf.h, > + * and also confuse the interaction between syncconfig and fixdep. > + * Error out if a symbol with the '_MODULE' suffix is found. > + */ > +static int sym_check_name(struct symbol *sym) > +{ > + static const char *suffix = "_MODULE"; > + static const size_t suffix_len = strlen("_MODULE"); > + char *name; > + size_t len; > + > + name = sym->name; > + > + if (!name) > + return 0; > + > + len = strlen(name); > + > + if (len < suffix_len) > + return 0; > + > + if (strcmp(name + len - suffix_len, suffix)) > + return 0; > + > + fprintf(stderr, "error: %s: symbol name must not end with '%s'\n", > + name, suffix); > + > + return -1; > +} > + > void conf_parse(const char *name) > { > struct symbol *sym; > @@ -493,8 +524,15 @@ void conf_parse(const char *name) > > if (yynerrs) > exit(1); > - if (!modules_sym) > + > + if (modules_sym) { > + for_all_symbols(i, sym) { > + if (sym_check_name(sym)) > + yynerrs++; > + } > + } else { > modules_sym = sym_find( "n" ); > + } > > if (!menu_has_prompt(&rootmenu)) { > current_entry = &rootmenu; > diff --git a/sound/soc/ti/Kconfig b/sound/soc/ti/Kconfig > index 698d7bc84dcf..c56a5789056f 100644 > --- a/sound/soc/ti/Kconfig > +++ b/sound/soc/ti/Kconfig > @@ -211,7 +211,7 @@ config SND_SOC_DM365_VOICE_CODEC > Say Y if you want to add support for SoC On-chip voice codec > endchoice > > -config SND_SOC_DM365_VOICE_CODEC_MODULE > +config SND_SOC_DM365_VOICE_CODEC_MODULAR This Kconfig option is only used to select the codecs needed for the voice mode, I think it would be better to use something like SND_SOC_DM365_SELECT_VOICE_CODECS ? > def_tristate y > depends on SND_SOC_DM365_VOICE_CODEC && SND_SOC > select MFD_DAVINCI_VOICECODEC > -- Péter