2023-10-11 13:14:54

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] 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.")
Signed-off-by: Arnd Bergmann <[email protected]>
---
drivers/of/base.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/of/base.c b/drivers/of/base.c
index 8d93cb6ea9cde..c4cf558e60d92 100644
--- a/drivers/of/base.c
+++ b/drivers/of/base.c
@@ -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
--
2.39.2


2023-10-11 14:00:54

by Sudeep Holla

[permalink] [raw]
Subject: Re: [PATCH] of: rexport of_find_next_cache_node()

On Wed, Oct 11, 2023 at 03:14:08PM +0200, Arnd Bergmann wrote:
> 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.")

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

--
Regards,
Sudeep

2023-10-11 14:06:26

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] of: rexport of_find_next_cache_node()

On Wed, Oct 11, 2023, at 15:59, Sudeep Holla wrote:
> On Wed, Oct 11, 2023 at 03:14:08PM +0200, Arnd Bergmann wrote:
>> 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.")
>
> 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

2023-10-11 14:40:24

by Sudeep Holla

[permalink] [raw]
Subject: Re: [PATCH] of: rexport of_find_next_cache_node()

On Wed, Oct 11, 2023 at 04:05:47PM +0200, Arnd Bergmann wrote:
> On Wed, Oct 11, 2023, at 15:59, Sudeep Holla wrote:
> > On Wed, Oct 11, 2023 at 03:14:08PM +0200, Arnd Bergmann wrote:
> >> 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.")
> >
> > 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.
>

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

2023-10-11 18:22:36

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] of: rexport of_find_next_cache_node()

On Wed, 11 Oct 2023 at 16:14, Arnd Bergmann <[email protected]> wrote:
>
> 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.")
> Signed-off-by: Arnd Bergmann <[email protected]>

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

--
With best wishes
Dmitry