Re: LED subsystem child DT node ref counting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Gentle reminder. Can anyone clarify this?

On 04/17/2015 01:03 PM, Jacek Anaszewski wrote:
Hi,

I'd like to clarify whether LED subsystem drivers behave correctly
or not, regarding child DT nodes reference counting.

Single LED controller can have connected more then one LED to it.
The LEDs are represented by child DT nodes of the node representing
the controller (see Documentation/devicetree/bindings/leds).

LED subsystem drivers parse child DT nodes and use the node name,
or 'label' property string as the LED class device name.

This is usually accomplished like below:

for_each_child_of_node(np, child) {
     ...
     led.name = of_get_property(child, "label", NULL) ? : child->name;


The question is whether reference count of the child node shouldn't
be increased here with of_node_get(child). Whereas intuitively it could
be thought of as a right thing to do, empirical experiments don't
necessary confirm that.

When I print the value of child_node->kobj.kref.refcount.counter
inside for_each loop it is 3 and and after leaving the loop it gets
decreased to 2. On driver removal the value is also 2. It means that
label is available all the time, without increasing child node ref
counter.

I'd like to ask if this is guaranteed to be always true.



--
Best Regards,
Jacek Anaszewski
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux