mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
leds: sc27xx: Move mutex_init() down
Move the mutex_init() to avoid redundant mutex_destroy() calls after that for each time the probe fails. Signed-off-by: Chunyan Zhang <chunyan.zhang@unisoc.com> Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> Link: https://lore.kernel.org/r/20231013022010.854367-1-chunyan.zhang@unisoc.com Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
259e33cbb1
commit
50be9e029b
@ -296,7 +296,6 @@ static int sc27xx_led_probe(struct platform_device *pdev)
|
||||
return -ENOMEM;
|
||||
|
||||
platform_set_drvdata(pdev, priv);
|
||||
mutex_init(&priv->lock);
|
||||
priv->base = base;
|
||||
priv->regmap = dev_get_regmap(dev->parent, NULL);
|
||||
if (!priv->regmap) {
|
||||
@ -309,13 +308,11 @@ static int sc27xx_led_probe(struct platform_device *pdev)
|
||||
err = of_property_read_u32(child, "reg", ®);
|
||||
if (err) {
|
||||
of_node_put(child);
|
||||
mutex_destroy(&priv->lock);
|
||||
return err;
|
||||
}
|
||||
|
||||
if (reg >= SC27XX_LEDS_MAX || priv->leds[reg].active) {
|
||||
of_node_put(child);
|
||||
mutex_destroy(&priv->lock);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -323,6 +320,8 @@ static int sc27xx_led_probe(struct platform_device *pdev)
|
||||
priv->leds[reg].active = true;
|
||||
}
|
||||
|
||||
mutex_init(&priv->lock);
|
||||
|
||||
err = sc27xx_led_register(dev, priv);
|
||||
if (err)
|
||||
mutex_destroy(&priv->lock);
|
||||
|
Loading…
Reference in New Issue
Block a user