Message ID | 20220621151720.4083639-1-windhl@126.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | [v2] power/supply/olpc_battery: Hold the reference returned by of_find_compatible_node | expand |
Hi, On Tue, Jun 21, 2022 at 11:17:20PM +0800, Liang He wrote: > In olpc_battery_probe(), we should hold the reference returned by > of_find_compatible_node() and use it to call of_node_put() for > refcount balance. > > Signed-off-by: Liang He <windhl@126.com> > --- Thanks, queued. -- Sebastian > changelog: > > v2: fix bug intro-ed by v1, reported by lkp. > v1: add hold-ref code. > > drivers/power/supply/olpc_battery.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/power/supply/olpc_battery.c b/drivers/power/supply/olpc_battery.c > index e0476ec06601..a5da20ffd685 100644 > --- a/drivers/power/supply/olpc_battery.c > +++ b/drivers/power/supply/olpc_battery.c > @@ -635,6 +635,7 @@ static int olpc_battery_probe(struct platform_device *pdev) > struct power_supply_config bat_psy_cfg = {}; > struct power_supply_config ac_psy_cfg = {}; > struct olpc_battery_data *data; > + struct device_node *np; > uint8_t status; > uint8_t ecver; > int ret; > @@ -649,7 +650,9 @@ static int olpc_battery_probe(struct platform_device *pdev) > if (ret) > return ret; > > - if (of_find_compatible_node(NULL, NULL, "olpc,xo1.75-ec")) { > + np = of_find_compatible_node(NULL, NULL, "olpc,xo1.75-ec"); > + if (np) { > + of_node_put(np); > /* XO 1.75 */ > data->new_proto = true; > data->little_endian = true; > -- > 2.25.1 >
diff --git a/drivers/power/supply/olpc_battery.c b/drivers/power/supply/olpc_battery.c index e0476ec06601..a5da20ffd685 100644 --- a/drivers/power/supply/olpc_battery.c +++ b/drivers/power/supply/olpc_battery.c @@ -635,6 +635,7 @@ static int olpc_battery_probe(struct platform_device *pdev) struct power_supply_config bat_psy_cfg = {}; struct power_supply_config ac_psy_cfg = {}; struct olpc_battery_data *data; + struct device_node *np; uint8_t status; uint8_t ecver; int ret; @@ -649,7 +650,9 @@ static int olpc_battery_probe(struct platform_device *pdev) if (ret) return ret; - if (of_find_compatible_node(NULL, NULL, "olpc,xo1.75-ec")) { + np = of_find_compatible_node(NULL, NULL, "olpc,xo1.75-ec"); + if (np) { + of_node_put(np); /* XO 1.75 */ data->new_proto = true; data->little_endian = true;
In olpc_battery_probe(), we should hold the reference returned by of_find_compatible_node() and use it to call of_node_put() for refcount balance. Signed-off-by: Liang He <windhl@126.com> --- changelog: v2: fix bug intro-ed by v1, reported by lkp. v1: add hold-ref code. drivers/power/supply/olpc_battery.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)