lkml.org 
[lkml]   [2020]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH v3 1/9] software_node: Add helper function to unregister arrays of software_nodes ordered parent to child
On Tue, Oct 20, 2020 at 11:52:56PM +0100, Dan Scally wrote:
> On 20/10/2020 11:05, Sakari Ailus wrote:
> > On Mon, Oct 19, 2020 at 11:58:55PM +0100, Daniel Scally wrote:
> >> Software nodes that are children of another software node should be
> >> unregistered before their parent. To allow easy unregistering of an array
> >> of software_nodes ordered parent to child, add a helper function to loop
> >> over and unregister nodes in such an array in reverse order.

...

> >> + * software_node_unregister_nodes_reverse - Unregister an array of software
> >> + * nodes in reverse order.
> >> + * @nodes: Array of software nodes to be unregistered.
> >> + *
> >> + * NOTE: The same warning applies as with software_node_unregister_nodes.
> >> + * Unless you are _sure_ that the array of nodes is ordered parent to child
> >> + * it is wiser to remove them individually in the correct order.
> > Could the default order in software_node_unregister_nodes() be reversed
> > instead? There are no users so this should be easy to change.
> >
> > Doing this only one way may require enforcing the registration order in
> > software_node_register_nodes(), but the end result would be safer.
> >
> > What do you think?
>
> Yeah fine by me. We can just use software_node_to_swnode(node->parent)
> within software_node_unregister_nodes() to check that children come
> after their parents have already been processed. I'll add a patch to do
> that in the next version of this series, and another changing the
> ordering of software_node_unregister_node_group() as Andy suggests for
> consistency.

I remember it was a big discussion between Rafael, Heikki and Greg KH about
child-parent release in kobjects. That ended up with few patches to device
object handling along with one that reversed the order of swnode unregistering
in test_printf.c. So here is the question who is maintaining the order: a kref
(via kobject) or a caller?

--
With Best Regards,
Andy Shevchenko


\
 
 \ /
  Last update: 2020-10-21 11:40    [W:0.084 / U:0.868 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site