Hi Rob Thank you for review > > +/** > > + * of_graph_get_next_port() - get next port node > > + * @parent: pointer to the parent device node > > + * @port: current port node, or NULL to get first > > + * > > + * Return: An 'port' node pointer with refcount incremented. Refcount > > + * of the passed @prev node is decremented. > > + */ > > +struct device_node *of_graph_get_next_port(const struct device_node *parent, > > + struct device_node *port) > > +{ > > + if (!parent) > > + return NULL; > > + > > + if (!port) { > > + struct device_node *node; > > + > > + node = of_get_child_by_name(parent, "ports"); > > + if (node) { > > + parent = node; > > + of_node_put(node); > > The original code had this right, but here you have it wrong. > > You are releasing ports here, but then using it... > > > + } > > + > > + return of_get_child_by_name(parent, "port"); > > ...here. You have to get the child before you can put the parent. You are reviewing v2, and it was already fixed in v3 Thank you for your help !! Best regards --- Renesas Electronics Ph.D. Kuninori Morimoto