On Tue, Sep 17, 2013 at 09:27:27PM -0700, Dmitry Torokhov wrote: > Hi Zubair, > > On Tue, Sep 17, 2013 at 09:44:07AM +0500, Zubair Lutfullah wrote: > > + > > + ret = devm_request_threaded_irq(indio_dev->dev.parent, > > + irq, > > + pollfunc_th, pollfunc_bh, > > + flags, indio_dev->name, > > + indio_dev); > > + if (ret) > > + goto error_kfifo_free; > > + > > + indio_dev->setup_ops = setup_ops; > > + indio_dev->modes |= INDIO_BUFFER_HARDWARE; > > + > > + ret = iio_buffer_register(indio_dev, > > + indio_dev->channels, > > + indio_dev->num_channels); > > + if (ret) > > + goto error_free_irq; > > + > > + return 0; > > + > > +error_free_irq: > > + devm_free_irq(indio_dev->dev.parent, irq, indio_dev); > > What is the point of using devm_* here if you are doing explicit > management of the resource anyway (you explicitly release it in all code > paths)? > > Thanks. > > -- > Dmitry I admit I am unaware at the moment about how it works. I use devm and simply ignore the error path? The devm function header description said something about using devm_free when freeing. And this is the way I am used to seeing error handling. Zubair -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html