diff mbox series

[v2] power/supply/olpc_battery: Hold the reference returned by of_find_compatible_node

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

Commit Message

Liang He June 21, 2022, 3:17 p.m. UTC
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(-)

Comments

Sebastian Reichel July 16, 2022, 11:07 p.m. UTC | #1
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 mbox series

Patch

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;