Message ID | 20190708123243.11713-1-huangfq.daxian@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [01/14] iio: adc: sc27xx: Introduce local variable 'struct device *dev' | expand |
On Mon, 8 Jul 2019 20:32:43 +0800 Fuqian Huang <huangfq.daxian@gmail.com> wrote: > devm_add_action_or_reset() is introduced as a helper function which > internally calls devm_add_action(). If devm_add_action() fails > then it will execute the action mentioned and return the error code. > This reduce source code size (avoid writing the action twice) > and reduce the likelyhood of bugs. > > Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com> Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan > --- > drivers/iio/adc/sc27xx_adc.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/iio/adc/sc27xx_adc.c b/drivers/iio/adc/sc27xx_adc.c > index ec86f640e963..d7ca002cbb17 100644 > --- a/drivers/iio/adc/sc27xx_adc.c > +++ b/drivers/iio/adc/sc27xx_adc.c > @@ -546,10 +546,9 @@ static int sc27xx_adc_probe(struct platform_device *pdev) > return -ENXIO; > } > > - ret = devm_add_action(dev, sc27xx_adc_free_hwlock, > + ret = devm_add_action_or_reset(dev, sc27xx_adc_free_hwlock, > sc27xx_data->hwlock); > if (ret) { > - sc27xx_adc_free_hwlock(sc27xx_data->hwlock); > dev_err(dev, "failed to add hwspinlock action\n"); > return ret; > } > @@ -563,9 +562,8 @@ static int sc27xx_adc_probe(struct platform_device *pdev) > return ret; > } > > - ret = devm_add_action(dev, sc27xx_adc_disable, sc27xx_data); > + ret = devm_add_action_or_reset(dev, sc27xx_adc_disable, sc27xx_data); > if (ret) { > - sc27xx_adc_disable(sc27xx_data); > dev_err(dev, "failed to add ADC disable action\n"); > return ret; > }
diff --git a/drivers/iio/adc/sc27xx_adc.c b/drivers/iio/adc/sc27xx_adc.c index ec86f640e963..d7ca002cbb17 100644 --- a/drivers/iio/adc/sc27xx_adc.c +++ b/drivers/iio/adc/sc27xx_adc.c @@ -546,10 +546,9 @@ static int sc27xx_adc_probe(struct platform_device *pdev) return -ENXIO; } - ret = devm_add_action(dev, sc27xx_adc_free_hwlock, + ret = devm_add_action_or_reset(dev, sc27xx_adc_free_hwlock, sc27xx_data->hwlock); if (ret) { - sc27xx_adc_free_hwlock(sc27xx_data->hwlock); dev_err(dev, "failed to add hwspinlock action\n"); return ret; } @@ -563,9 +562,8 @@ static int sc27xx_adc_probe(struct platform_device *pdev) return ret; } - ret = devm_add_action(dev, sc27xx_adc_disable, sc27xx_data); + ret = devm_add_action_or_reset(dev, sc27xx_adc_disable, sc27xx_data); if (ret) { - sc27xx_adc_disable(sc27xx_data); dev_err(dev, "failed to add ADC disable action\n"); return ret; }
devm_add_action_or_reset() is introduced as a helper function which internally calls devm_add_action(). If devm_add_action() fails then it will execute the action mentioned and return the error code. This reduce source code size (avoid writing the action twice) and reduce the likelyhood of bugs. Signed-off-by: Fuqian Huang <huangfq.daxian@gmail.com> --- drivers/iio/adc/sc27xx_adc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)