On Mon, Feb 15, 2016 at 10:32:47AM +0530, maitysanchayan@xxxxxxxxx wrote: > Hello Fabio, > > On 16-02-14 12:10:49, Fabio Estevam wrote: > > From: Fabio Estevam <fabio.estevam@xxxxxxx> > > > > We need to make sure to call iio_channel_release_all() in all error > > paths of the probe function. > > > > Signed-off-by: Fabio Estevam <fabio.estevam@xxxxxxx> > > --- > > Build-tested only. > > > > drivers/input/touchscreen/colibri-vf50-ts.c | 39 ++++++++++++++++++----------- > > 1 file changed, 24 insertions(+), 15 deletions(-) > > > > diff --git a/drivers/input/touchscreen/colibri-vf50-ts.c b/drivers/input/touchscreen/colibri-vf50-ts.c > > index 69828d0..67f8a17 100644 > > --- a/drivers/input/touchscreen/colibri-vf50-ts.c > > +++ b/drivers/input/touchscreen/colibri-vf50-ts.c > > @@ -279,9 +279,8 @@ static int vf50_ts_probe(struct platform_device *pdev) > > > > error = devm_add_action(dev, vf50_ts_channel_release, channels); > > if (error) { > > - iio_channel_release_all(channels); > > dev_err(dev, "Failed to register iio channel release action"); > > - return error; > > + goto channel_release; > > } > > As far as my understanding goes, from the discussion which happened during the > submission of the patchset for this driver, the channel release gets taken care > by the vf50_ts_channel_release function. Once it is successfully registered with > devm_add_action, any further error returns in probe, will result in this function > being called and the channels getting released. That is correct, devm_add_action injects a custom action into devm release sequence, so we should be releasing all channels when bailing out due to an error. Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html