Message ID | 20220915031121.4003589-1-windhl@126.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | clk: ti: Call of_node_get() before of_find_xxx() API | expand |
Quoting Liang He (2022-09-14 20:11:21) > In ti_find_clock_provider(), we need to call of_node_get() for > of_find_node_by_name() which will automatically call of_node_put() > for the 'from' argument. > > Fixes: 51f661ef9a10 ("clk: ti: Add ti_find_clock_provider() to use clock-output-names") > Signed-off-by: Liang He <windhl@126.com> > --- > drivers/clk/ti/clk.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c > index 373e9438b57a..7c390cd67e1a 100644 > --- a/drivers/clk/ti/clk.c > +++ b/drivers/clk/ti/clk.c > @@ -147,6 +147,7 @@ static struct device_node *ti_find_clock_provider(struct device_node *from, > return np; > > /* Fall back to using old node name base provider name */ > + of_node_get(from); It seems better to hold the reference from the earlier search. > return of_find_node_by_name(from, name); > } How about this? ----8<---- diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c index ef2a445c63a3..a99279265e40 100644 --- a/drivers/clk/ti/clk.c +++ b/drivers/clk/ti/clk.c @@ -139,11 +139,12 @@ static struct device_node *ti_find_clock_provider(struct device_node *from, break; } } - of_node_put(from); kfree(tmp); - if (found) + if (found) { + of_node_put(from); return np; + } /* Fall back to using old node name base provider name */ return of_find_node_by_name(from, name);
diff --git a/drivers/clk/ti/clk.c b/drivers/clk/ti/clk.c index 373e9438b57a..7c390cd67e1a 100644 --- a/drivers/clk/ti/clk.c +++ b/drivers/clk/ti/clk.c @@ -147,6 +147,7 @@ static struct device_node *ti_find_clock_provider(struct device_node *from, return np; /* Fall back to using old node name base provider name */ + of_node_get(from); return of_find_node_by_name(from, name); }
In ti_find_clock_provider(), we need to call of_node_get() for of_find_node_by_name() which will automatically call of_node_put() for the 'from' argument. Fixes: 51f661ef9a10 ("clk: ti: Add ti_find_clock_provider() to use clock-output-names") Signed-off-by: Liang He <windhl@126.com> --- drivers/clk/ti/clk.c | 1 + 1 file changed, 1 insertion(+)