Skip to contentSkip to conversation

of: rexport of_find_next_cache_node()

PATCH In review Arnd Bergmann 4 participants 5 messages Oct 11, 2023 Device tree

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 of: rexport of_find_next_cache_node()

From: Arnd Bergmann <[email protected]>

This function is now called from a cpufreq driver, but that breaks the build when the caller is in a loadable module, because of a missing export:

ERROR: modpost: "of_find_next_cache_node" [drivers/cpufreq/qcom-cpufreq-nvmem.ko] undefined!

Export this as a GPL-only symbol, like the other related functions in this file.

Fixes 7683a63c08ff5 ("cpufreq: qcom-nvmem: create L2 cache device")
Fixes a3e31b4588443 ("of: Move definition of of_find_next_cache_node into common code.")
---
 drivers/of/base.c | 1 +
 1 file changed, 1 insertion(+)
drivers/of/base.c +1 -0
index 8d93cb6ea9cde..c4cf558e60d92 100644
@@ -1905,6 +1905,7 @@ struct device_node *of_find_next_cache_node(const struct device_node *np)
 
 	return NULL;
 }
+EXPORT_SYMBOL_GPL(of_find_next_cache_node);
 
 /**
  * of_find_last_cache_level - Find the level at which the last cache is
Signature · 1 line
2.39.2
#1 lore raw
Quoted 6 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

This function is now called from a cpufreq driver, but that breaks the build when the caller is in a loadable module, because of a missing export:

Quoted 7 lines

ERROR: modpost: "of_find_next_cache_node" [drivers/cpufreq/qcom-cpufreq-nvmem.ko] undefined!

Export this as a GPL-only symbol, like the other related functions in this file.

Fixes 7683a63c08ff5 ("cpufreq: qcom-nvmem: create L2 cache device")
Fixes a3e31b4588443 ("of: Move definition of of_find_next_cache_node into common code.")

I am bit confused as I see commit a3e31b4588443 didn't drop the export. So how is this change fixing that commit ?

--
Regards,
Sudeep

#2 lore raw
Quoted 9 lines · Sudeep Holla
Quoted 8 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

This function is now called from a cpufreq driver, but that breaks the build when the caller is in a loadable module, because of a missing export:

ERROR: modpost: "of_find_next_cache_node" [drivers/cpufreq/qcom-cpufreq-nvmem.ko] undefined!

Quoted 8 lines
Quoted 5 lines

Export this as a GPL-only symbol, like the other related functions in this file.

Fixes 7683a63c08ff5 ("cpufreq: qcom-nvmem: create L2 cache device")
Fixes a3e31b4588443 ("of: Move definition of of_find_next_cache_node into common code.")

I am bit confused as I see commit a3e31b4588443 didn't drop the export. So how is this change fixing that commit ?

My mistake, I was looking for the commit that initially introduced the function, but didn't notice that this just moved it from powerpc.

I could have used "Fixes: e523f723d69cd ("powerpc: Add of_find_next_cache_node()")", but it's probably best to just leave that line out entirely.

Arnd

#3 lore raw
Quoted 19 lines · Arnd Bergmann
Quoted 9 lines · Sudeep Holla
Quoted 8 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

This function is now called from a cpufreq driver, but that breaks the build when the caller is in a loadable module, because of a missing export:

ERROR: modpost: "of_find_next_cache_node" [drivers/cpufreq/qcom-cpufreq-nvmem.ko] undefined!

Quoted 8 lines
Quoted 5 lines

Export this as a GPL-only symbol, like the other related functions in this file.

Fixes 7683a63c08ff5 ("cpufreq: qcom-nvmem: create L2 cache device")
Fixes a3e31b4588443 ("of: Move definition of of_find_next_cache_node into common code.")

I am bit confused as I see commit a3e31b4588443 didn't drop the export. So how is this change fixing that commit ?

Quoted 7 lines

My mistake, I was looking for the commit that initially introduced the function, but didn't notice that this just moved it from powerpc.

I could have used "Fixes: e523f723d69cd ("powerpc: Add of_find_next_cache_node()")", but it's probably best to just leave that line out entirely.

Yes I was thinking to drop it as it is quite old commit(both a3e31b4588443 and e523f723d69cd) and I don't see any point in merging this to all the concerned stable trees as they must not have this new user.

That said it is not a complex change, so I am fine either way, just thought of raising it in case it was not intentional.

--
Regards,
Sudeep

#4 lore raw
In reply to Arnd Bergmann
Quoted 7 lines · Arnd Bergmann

From: Arnd Bergmann <[email protected]>

This function is now called from a cpufreq driver, but that breaks the build when the caller is in a loadable module, because of a missing export:

Quoted 8 lines

ERROR: modpost: "of_find_next_cache_node" [drivers/cpufreq/qcom-cpufreq-nvmem.ko] undefined!

Export this as a GPL-only symbol, like the other related functions in this file.

Fixes 7683a63c08ff5 ("cpufreq: qcom-nvmem: create L2 cache device")
Fixes a3e31b4588443 ("of: Move definition of of_find_next_cache_node into common code.")

Thanks for the patch. I've also sent a similar patch at [1]. Now we are discussing with Rob if the overall idea of the L2 cache device is correct or not.

[1] https://lore.kernel.org/linux-arm-msm/CAA8EJppCO-q=swYOH+O2fOdUDbNzd1yz9ZoTEBswV7RmvFJifA@mail.gmail.com/T/#t

Signature · 2 lines
With best wishes
Dmitry