drivers/clk/qcom/common.c uses devm_icc_clk_register under
IS_ENABLED(CONFIG_INTERCONNECT_CLK). However, in kernel bot
random config build test, with the following combination
CONFIG_COMMON_CLK_QCOM=y
and
CONFIG_INTERCONNECT_CLK=m
the following error is seen as devm_icc_clk_register is in a
module and being referenced from vmlinux.
powerpc64-linux-ld: drivers/clk/qcom/common.o: in function `qcom_cc_really_probe':
>> common.c:(.text+0x980): undefined reference to `devm_icc_clk_register'
Hence, ensure INTERCONNECT_CLK is not selected as a module.
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202404012258.MFriF5BV-lkp@intel.com/
Fixes: 0ac2a08f42ce ("interconnect: add clk-based icc provider support")
Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
---
drivers/interconnect/Kconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/interconnect/Kconfig b/drivers/interconnect/Kconfig
index 5faa8d2aecff..f44be5469382 100644
--- a/drivers/interconnect/Kconfig
+++ b/drivers/interconnect/Kconfig
@@ -16,7 +16,6 @@ source "drivers/interconnect/qcom/Kconfig"
source "drivers/interconnect/samsung/Kconfig"
config INTERCONNECT_CLK
- tristate
depends on COMMON_CLK
help
Support for wrapping clocks into the interconnect nodes.
--
2.34.1
Hi Varadarajan,
kernel test robot noticed the following build errors:
[auto build test ERROR on clk/clk-next]
[also build test ERROR on robh/for-next linus/master v6.9-rc2 next-20240403]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Varadarajan-Narayanan/dt-bindings-interconnect-Add-Qualcomm-IPQ9574-support/20240402-223729
base: https://git.kernel.org/pub/scm/linux/kernel/git/clk/linux.git clk-next
patch link: https://lore.kernel.org/r/20240402103406.3638821-3-quic_varada%40quicinc.com
patch subject: [PATCH v6 2/6] interconnect: icc-clk: Remove tristate from INTERCONNECT_CLK
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20240403/202404032328.7zrla6d9-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240403/202404032328.7zrla6d9-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202404032328.7zrla6d9-lkp@intel.com/
All errors (new ones prefixed by >>):
aarch64-linux-ld: Unexpected GOT/PLT entries detected!
aarch64-linux-ld: Unexpected run-time procedure linkages detected!
aarch64-linux-ld: drivers/clk/qcom/clk-cbf-8996.o: in function `qcom_msm8996_cbf_icc_remove':
>> drivers/clk/qcom/clk-cbf-8996.c:257:(.text+0x10): undefined reference to `icc_clk_unregister'
aarch64-linux-ld: drivers/clk/qcom/clk-cbf-8996.o: in function `qcom_msm8996_cbf_icc_register':
>> drivers/clk/qcom/clk-cbf-8996.c:244:(.text+0x360): undefined reference to `icc_clk_register'
vim +257 drivers/clk/qcom/clk-cbf-8996.c
12dc71953e664f Dmitry Baryshkov 2023-05-12 234
12dc71953e664f Dmitry Baryshkov 2023-05-12 235 static int qcom_msm8996_cbf_icc_register(struct platform_device *pdev, struct clk_hw *cbf_hw)
12dc71953e664f Dmitry Baryshkov 2023-05-12 236 {
12dc71953e664f Dmitry Baryshkov 2023-05-12 237 struct device *dev = &pdev->dev;
12dc71953e664f Dmitry Baryshkov 2023-05-12 238 struct clk *clk = devm_clk_hw_get_clk(dev, cbf_hw, "cbf");
12dc71953e664f Dmitry Baryshkov 2023-05-12 239 const struct icc_clk_data data[] = {
12dc71953e664f Dmitry Baryshkov 2023-05-12 240 { .clk = clk, .name = "cbf", },
12dc71953e664f Dmitry Baryshkov 2023-05-12 241 };
12dc71953e664f Dmitry Baryshkov 2023-05-12 242 struct icc_provider *provider;
12dc71953e664f Dmitry Baryshkov 2023-05-12 243
12dc71953e664f Dmitry Baryshkov 2023-05-12 @244 provider = icc_clk_register(dev, CBF_MASTER_NODE, ARRAY_SIZE(data), data);
12dc71953e664f Dmitry Baryshkov 2023-05-12 245 if (IS_ERR(provider))
12dc71953e664f Dmitry Baryshkov 2023-05-12 246 return PTR_ERR(provider);
12dc71953e664f Dmitry Baryshkov 2023-05-12 247
12dc71953e664f Dmitry Baryshkov 2023-05-12 248 platform_set_drvdata(pdev, provider);
12dc71953e664f Dmitry Baryshkov 2023-05-12 249
12dc71953e664f Dmitry Baryshkov 2023-05-12 250 return 0;
12dc71953e664f Dmitry Baryshkov 2023-05-12 251 }
12dc71953e664f Dmitry Baryshkov 2023-05-12 252
abaf59c470a7c9 Uwe Kleine-König 2023-09-11 253 static void qcom_msm8996_cbf_icc_remove(struct platform_device *pdev)
12dc71953e664f Dmitry Baryshkov 2023-05-12 254 {
12dc71953e664f Dmitry Baryshkov 2023-05-12 255 struct icc_provider *provider = platform_get_drvdata(pdev);
12dc71953e664f Dmitry Baryshkov 2023-05-12 256
12dc71953e664f Dmitry Baryshkov 2023-05-12 @257 icc_clk_unregister(provider);
12dc71953e664f Dmitry Baryshkov 2023-05-12 258 }
12dc71953e664f Dmitry Baryshkov 2023-05-12 259 #define qcom_msm8996_cbf_icc_sync_state icc_sync_state
12dc71953e664f Dmitry Baryshkov 2023-05-12 260 #else
12dc71953e664f Dmitry Baryshkov 2023-05-12 261 static int qcom_msm8996_cbf_icc_register(struct platform_device *pdev, struct clk_hw *cbf_hw)
12dc71953e664f Dmitry Baryshkov 2023-05-12 262 {
12dc71953e664f Dmitry Baryshkov 2023-05-12 263 dev_warn(&pdev->dev, "CONFIG_INTERCONNECT is disabled, CBF clock is fixed\n");
12dc71953e664f Dmitry Baryshkov 2023-05-12 264
12dc71953e664f Dmitry Baryshkov 2023-05-12 265 return 0;
12dc71953e664f Dmitry Baryshkov 2023-05-12 266 }
abaf59c470a7c9 Uwe Kleine-König 2023-09-11 267 #define qcom_msm8996_cbf_icc_remove(pdev) { }
12dc71953e664f Dmitry Baryshkov 2023-05-12 268 #define qcom_msm8996_cbf_icc_sync_state NULL
12dc71953e664f Dmitry Baryshkov 2023-05-12 269 #endif
12dc71953e664f Dmitry Baryshkov 2023-05-12 270
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
On Tue, 2 Apr 2024 at 13:34, Varadarajan Narayanan
<quic_varada@quicinc.com> wrote:
>
> drivers/clk/qcom/common.c uses devm_icc_clk_register under
> IS_ENABLED(CONFIG_INTERCONNECT_CLK). However, in kernel bot
> random config build test, with the following combination
>
> CONFIG_COMMON_CLK_QCOM=y
> and
> CONFIG_INTERCONNECT_CLK=m
>
> the following error is seen as devm_icc_clk_register is in a
> module and being referenced from vmlinux.
>
> powerpc64-linux-ld: drivers/clk/qcom/common.o: in function `qcom_cc_really_probe':
> >> common.c:(.text+0x980): undefined reference to `devm_icc_clk_register'
>
> Hence, ensure INTERCONNECT_CLK is not selected as a module.
NAK. Please use `depends on INTERCONNECT_CLK || !INTERCONNECT_CLK` in
your Kconfig dependencies.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202404012258.MFriF5BV-lkp@intel.com/
> Fixes: 0ac2a08f42ce ("interconnect: add clk-based icc provider support")
> Signed-off-by: Varadarajan Narayanan <quic_varada@quicinc.com>
> ---
> drivers/interconnect/Kconfig | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/interconnect/Kconfig b/drivers/interconnect/Kconfig
> index 5faa8d2aecff..f44be5469382 100644
> --- a/drivers/interconnect/Kconfig
> +++ b/drivers/interconnect/Kconfig
> @@ -16,7 +16,6 @@ source "drivers/interconnect/qcom/Kconfig"
> source "drivers/interconnect/samsung/Kconfig"
>
> config INTERCONNECT_CLK
> - tristate
> depends on COMMON_CLK
> help
> Support for wrapping clocks into the interconnect nodes.
> --
> 2.34.1
>
--
With best wishes
Dmitry
On 2.04.2024 12:39 PM, Dmitry Baryshkov wrote: > On Tue, 2 Apr 2024 at 13:34, Varadarajan Narayanan > <quic_varada@quicinc.com> wrote: >> >> drivers/clk/qcom/common.c uses devm_icc_clk_register under >> IS_ENABLED(CONFIG_INTERCONNECT_CLK). However, in kernel bot >> random config build test, with the following combination >> >> CONFIG_COMMON_CLK_QCOM=y >> and >> CONFIG_INTERCONNECT_CLK=m >> >> the following error is seen as devm_icc_clk_register is in a >> module and being referenced from vmlinux. >> >> powerpc64-linux-ld: drivers/clk/qcom/common.o: in function `qcom_cc_really_probe': >> >> common.c:(.text+0x980): undefined reference to `devm_icc_clk_register' >> >> Hence, ensure INTERCONNECT_CLK is not selected as a module. > > NAK. Please use `depends on INTERCONNECT_CLK || !INTERCONNECT_CLK` in > your Kconfig dependencies. Should icc-clk ever be built as a module? It really seems like it should be a part of the core framework.. And dependency management would be easier Konrad
© 2016 - 2026 Red Hat, Inc.