2020-08-20 23:34:19

by Florian Fainelli

[permalink] [raw]
Subject: [PATCH] of: Export of_node_ktype for modular use of of_init_node

To permit the use of of_init_node() by kernel modules, we must export
of_node_ktype which is directly referenced by kobject_init() called from
of_init_node() otherwise modules would be getting linking failures.

Fixes: 0829f6d1f69e ("of: device_node kobject lifecycle fixes")
Signed-off-by: Florian Fainelli <[email protected]>
---
drivers/of/kobj.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/of/kobj.c b/drivers/of/kobj.c
index a32e60b024b8..d7bbd156a671 100644
--- a/drivers/of/kobj.c
+++ b/drivers/of/kobj.c
@@ -27,6 +27,7 @@ static void of_node_release(struct kobject *kobj)
struct kobj_type of_node_ktype = {
.release = of_node_release,
};
+EXPORT_SYMBOL_GPL(of_node_ktype);

static ssize_t of_node_property_read(struct file *filp, struct kobject *kobj,
struct bin_attribute *bin_attr, char *buf,
--
2.7.4


2020-08-21 22:01:36

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH] of: Export of_node_ktype for modular use of of_init_node

On Thu, Aug 20, 2020 at 5:31 PM Florian Fainelli <[email protected]> wrote:
>
> To permit the use of of_init_node() by kernel modules, we must export
> of_node_ktype which is directly referenced by kobject_init() called from
> of_init_node() otherwise modules would be getting linking failures.

You mean of_node_init()?

There's not anything in the kernel using this that's a module. It's a
low level function that I don't really want to see more users for.

Rob

2020-08-21 22:02:50

by Florian Fainelli

[permalink] [raw]
Subject: Re: [PATCH] of: Export of_node_ktype for modular use of of_init_node

On 8/21/20 3:00 PM, Rob Herring wrote:
> On Thu, Aug 20, 2020 at 5:31 PM Florian Fainelli <[email protected]> wrote:
>>
>> To permit the use of of_init_node() by kernel modules, we must export
>> of_node_ktype which is directly referenced by kobject_init() called from
>> of_init_node() otherwise modules would be getting linking failures.
>
> You mean of_node_init()?

Yes, I kept inverting the two words.

>
> There's not anything in the kernel using this that's a module. It's a
> low level function that I don't really want to see more users for.

OK, fair enough, the candidate use I had in mind is probably too ugly to
be submitted upstream anyway.
--
Florian