On 07/02/2025 02:31, Zhang Zekun wrote: > There are many drivers use of_find_node_by_name() with a not-NULL > device_node pointer, and a number of callers would require a call to > of_node_get() before using it. There are also some drivers who forget > to call of_node_get() which would cause a ref count leak[1]. So, Add a > wraper function for of_find_node_by_name(), drivers may use this function > to call of_find_node_by_name() with the refcount already balanced. > > [1] https://lore.kernel.org/all/20241024015909.58654-1-zhangzekun11@xxxxxxxxxx/ > > Signed-off-by: Zhang Zekun <zhangzekun11@xxxxxxxxxx> > --- > include/linux/of.h | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/include/linux/of.h b/include/linux/of.h > index eaf0e2a2b75c..b7c6d7ff278c 100644 > --- a/include/linux/of.h > +++ b/include/linux/of.h > @@ -268,6 +268,11 @@ static inline const char *of_node_full_name(const struct device_node *np) > #define for_each_of_allnodes(dn) for_each_of_allnodes_from(NULL, dn) > extern struct device_node *of_find_node_by_name(struct device_node *from, > const char *name); > +static inline struct device_node *of_find_node_by_name_balanced(struct device_node *from, > + const char *name) > +{ > + return of_find_node_by_name(of_node_get(from), name); I don't think that solution to people not reading API description is to create more API with similar but a bit different behavior, especially undocumented. Best regards, Krzysztof