Skip to content

Commit d61876a

Browse files
andy-shevbebarino
authored andcommitted
clkdev: Simplify devm_clk_hw_register_clkdev() function
Use devm_add_action_or_reset() instead of devres_alloc() and devres_add(), which works the same. This will simplify the code. There is no functional changes. Signed-off-by: Andy Shevchenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Stephen Boyd <[email protected]>
1 parent 07bdf48 commit d61876a

File tree

1 file changed

+10
-14
lines changed

1 file changed

+10
-14
lines changed

drivers/clk/clkdev.c

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -346,9 +346,9 @@ int clk_hw_register_clkdev(struct clk_hw *hw, const char *con_id,
346346
}
347347
EXPORT_SYMBOL(clk_hw_register_clkdev);
348348

349-
static void devm_clkdev_release(struct device *dev, void *res)
349+
static void devm_clkdev_release(void *res)
350350
{
351-
clkdev_drop(*(struct clk_lookup **)res);
351+
clkdev_drop(res);
352352
}
353353

354354
/**
@@ -369,17 +369,13 @@ static void devm_clkdev_release(struct device *dev, void *res)
369369
int devm_clk_hw_register_clkdev(struct device *dev, struct clk_hw *hw,
370370
const char *con_id, const char *dev_id)
371371
{
372-
int rval = -ENOMEM;
373-
struct clk_lookup **cl;
374-
375-
cl = devres_alloc(devm_clkdev_release, sizeof(*cl), GFP_KERNEL);
376-
if (cl) {
377-
rval = do_clk_register_clkdev(hw, cl, con_id, dev_id);
378-
if (!rval)
379-
devres_add(dev, cl);
380-
else
381-
devres_free(cl);
382-
}
383-
return rval;
372+
struct clk_lookup *cl;
373+
int rval;
374+
375+
rval = do_clk_register_clkdev(hw, &cl, con_id, dev_id);
376+
if (rval)
377+
return rval;
378+
379+
return devm_add_action_or_reset(dev, devm_clkdev_release, cl);
384380
}
385381
EXPORT_SYMBOL(devm_clk_hw_register_clkdev);

0 commit comments

Comments
 (0)