Use devm_add_action_or_reset() instead of devm_add_action()+hand writing what is done in the release function, should an error occur.
This is more straightforward and saves a few lines of code.
While at it, remove a useless test in devm_backlight_release(). 'data' is known to be not NULL when this function is called.
Signed-off-by: Christophe JAILLET christophe.jaillet@wanadoo.fr --- drivers/video/backlight/backlight.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/video/backlight/backlight.c b/drivers/video/backlight/backlight.c index 4ae6fae94ac2..b788ff3d0f45 100644 --- a/drivers/video/backlight/backlight.c +++ b/drivers/video/backlight/backlight.c @@ -710,8 +710,7 @@ static void devm_backlight_release(void *data) { struct backlight_device *bd = data;
- if (bd) - put_device(&bd->dev); + put_device(&bd->dev); }
/** @@ -737,11 +736,10 @@ struct backlight_device *devm_of_find_backlight(struct device *dev) bd = of_find_backlight(dev); if (IS_ERR_OR_NULL(bd)) return bd; - ret = devm_add_action(dev, devm_backlight_release, bd); - if (ret) { - put_device(&bd->dev); + ret = devm_add_action_or_reset(dev, devm_backlight_release, bd); + if (ret) return ERR_PTR(ret); - } + return bd; } EXPORT_SYMBOL(devm_of_find_backlight);
On Sun, Feb 13, 2022 at 08:41:39AM +0100, Christophe JAILLET wrote:
Reviewed-by: Daniel Thompson daniel.thompson@linaro.org
Daniel.
dri-devel@lists.freedesktop.org