Message ID | 20221128142740.1414-1-linqiheng@huawei.com (mailing list archive) |
---|---|
State | Handled Elsewhere, archived |
Headers | show |
Series | power: supply: Fix refcount leak in rk817_charger_probe | expand |
On Mon, Nov 28, 2022 at 10:27:40PM +0800, Qiheng Lin wrote: > of_get_child_by_name() returns a node pointer with refcount > incremented, we should use of_node_put() on it when not need anymore. > Add missing of_node_put() to avoid refcount leak. > > Fixes: 11cb8da0189b ("power: supply: Add charger driver for Rockchip RK817") > Signed-off-by: Qiheng Lin <linqiheng@huawei.com> Good catch, thank you! Reviewed-by: Chris Morgan <macromorgan@hotmail.com> > --- > drivers/power/supply/rk817_charger.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/power/supply/rk817_charger.c b/drivers/power/supply/rk817_charger.c > index 635f051b0821..d25a81d79fac 100644 > --- a/drivers/power/supply/rk817_charger.c > +++ b/drivers/power/supply/rk817_charger.c > @@ -1060,8 +1060,10 @@ static int rk817_charger_probe(struct platform_device *pdev) > return -ENODEV; > > charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL); > - if (!charger) > + if (!charger) { > + of_node_put(node); > return -ENOMEM; > + } > > charger->rk808 = rk808; > > -- > 2.32.0 >
Hi, On Tue, Nov 29, 2022 at 11:35:45AM -0600, Chris Morgan wrote: > On Mon, Nov 28, 2022 at 10:27:40PM +0800, Qiheng Lin wrote: > > of_get_child_by_name() returns a node pointer with refcount > > incremented, we should use of_node_put() on it when not need anymore. > > Add missing of_node_put() to avoid refcount leak. > > > > Fixes: 11cb8da0189b ("power: supply: Add charger driver for Rockchip RK817") > > Signed-off-by: Qiheng Lin <linqiheng@huawei.com> > > Good catch, thank you! > > Reviewed-by: Chris Morgan <macromorgan@hotmail.com> Thanks, merged. -- Sebastian > > --- > > drivers/power/supply/rk817_charger.c | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/power/supply/rk817_charger.c b/drivers/power/supply/rk817_charger.c > > index 635f051b0821..d25a81d79fac 100644 > > --- a/drivers/power/supply/rk817_charger.c > > +++ b/drivers/power/supply/rk817_charger.c > > @@ -1060,8 +1060,10 @@ static int rk817_charger_probe(struct platform_device *pdev) > > return -ENODEV; > > > > charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL); > > - if (!charger) > > + if (!charger) { > > + of_node_put(node); > > return -ENOMEM; > > + } > > > > charger->rk808 = rk808; > > > > -- > > 2.32.0 > >
diff --git a/drivers/power/supply/rk817_charger.c b/drivers/power/supply/rk817_charger.c index 635f051b0821..d25a81d79fac 100644 --- a/drivers/power/supply/rk817_charger.c +++ b/drivers/power/supply/rk817_charger.c @@ -1060,8 +1060,10 @@ static int rk817_charger_probe(struct platform_device *pdev) return -ENODEV; charger = devm_kzalloc(&pdev->dev, sizeof(*charger), GFP_KERNEL); - if (!charger) + if (!charger) { + of_node_put(node); return -ENOMEM; + } charger->rk808 = rk808;
of_get_child_by_name() returns a node pointer with refcount incremented, we should use of_node_put() on it when not need anymore. Add missing of_node_put() to avoid refcount leak. Fixes: 11cb8da0189b ("power: supply: Add charger driver for Rockchip RK817") Signed-off-by: Qiheng Lin <linqiheng@huawei.com> --- drivers/power/supply/rk817_charger.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- 2.32.0