]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - include/linux/power_supply.h
power_supply: Add power_supply_put for decrementing device reference counter
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Thu, 12 Mar 2015 07:44:12 +0000 (08:44 +0100)
committerSebastian Reichel <sre@kernel.org>
Fri, 13 Mar 2015 22:15:52 +0000 (23:15 +0100)
commit1a352462b5377ac68f5955d674b3460c7bac52a3
treeb2dbecd8b038ccaddd262af47efa4fdf64c75696
parent297d716f6260cc9421d971b124ca196b957ee458
power_supply: Add power_supply_put for decrementing device reference counter

The power_supply_get_by_phandle() and power_supply_get_by_name() use
function class_find_device() for obtaining the reference to power
supply. Each use of class_find_device() increases the power supply's
device reference counter.

However the reference counter was not decreased by users of this API.
Thus final device_unregister() call from power_supply_unregister() could
not release the device and clean up its resources. This lead to memory
leak if at least once power_supply_get_by_*() was called between
registering and unregistering the power supply.

Add and document new API power_supply_put() for decrementing the
reference counter.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Reviewed-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
drivers/power/power_supply_core.c
include/linux/power_supply.h