ARM: shmobile: rcar-gen2: Increase refcount for new reference
In rcar_gen2_regulator_quirk(), for_each_matching_node_and_match() will automatically increase and decrease the refcount. However, we should call of_node_get() for the new reference created in 'quirk->np'. Besides, we also should call of_node_put() before the 'quirk' being freed. Signed-off-by: Liang He <windhl@126.com> Link: https://lore.kernel.org/r/20220701121804.234223-1-windhl@126.com Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
This commit is contained in:
parent
f2906aa863
commit
75a185fb92
|
@ -125,6 +125,7 @@ static int regulator_quirk_notify(struct notifier_block *nb,
|
|||
|
||||
list_for_each_entry_safe(pos, tmp, &quirk_list, list) {
|
||||
list_del(&pos->list);
|
||||
of_node_put(pos->np);
|
||||
kfree(pos);
|
||||
}
|
||||
|
||||
|
@ -174,11 +175,12 @@ static int __init rcar_gen2_regulator_quirk(void)
|
|||
memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg));
|
||||
|
||||
quirk->id = id;
|
||||
quirk->np = np;
|
||||
quirk->np = of_node_get(np);
|
||||
quirk->i2c_msg.addr = addr;
|
||||
|
||||
ret = of_irq_parse_one(np, 0, argsa);
|
||||
if (ret) { /* Skip invalid entry and continue */
|
||||
of_node_put(np);
|
||||
kfree(quirk);
|
||||
continue;
|
||||
}
|
||||
|
@ -225,6 +227,7 @@ static int __init rcar_gen2_regulator_quirk(void)
|
|||
err_mem:
|
||||
list_for_each_entry_safe(pos, tmp, &quirk_list, list) {
|
||||
list_del(&pos->list);
|
||||
of_node_put(pos->np);
|
||||
kfree(pos);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue