On 22 October 2014 19:45, Dmitry Torokhov <dmitry.torokhov at gmail.com> wrote: > On Wed, Oct 22, 2014 at 09:58:34AM +0200, Ulf Hansson wrote: >> >> Using the devm_*API is supposed to work from here. I have kept this in >> mind, while we added the new dev_pm_domain_attach|detach() API. The >> buses also handles -EPROBE_DEFER. > > How do you ensure this? You have no control over from where API is > called. If I happen to call it form anywhere but bus probe code path I > will be leaking memory at least until the device is unbound completely > (which would be in this case an unrelated event). You are right, devm_*API is currently not a good idea! I didn't realize that the ->attach_dev() callback was invoked from __pm_genpd_add_device(). Sorry for the noise. Anyway, I am working on adding the option to return -EPROBE_DEFER from the ->attach_dev() callback, since that could be useful to support. Kind regards Uffe