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
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
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