On 07/07/2014 05:23 PM, Julia Lawall wrote:
On Mon, 7 Jul 2014, Fabio Estevam wrote:
On Mon, Jul 7, 2014 at 11:58 AM, Julia Lawall julia.lawall@lip6.fr wrote:
Nevertheless, there is already a call to devm_regulator_bulk_get in sgtl5000_enable_regulators which calls sgtl5000_replace_vddd_with_ldo which calls ldo_regulator_register. That call was introduced by
commit 63e54cd9caa3ce03635810608519e2b37d8bc706 Author: Fabio Estevam fabio.estevam@freescale.com Date: Thu Apr 24 14:13:08 2014 -0300
It seems that that patch should be reverted?
I think so. Russell also reported a kernel oops when unbinding this module, so I will prepare a patch reverting it.
There is documentation about what kinds of devm functions exist, but it is too bad that there is no documentation about where they can be used. Often there are several levels of function pointers involved, so it can be hard to figure out whether they can be used just by looking at the code. I have only taken the strategy of using them in kinds of functions where someone else has alreadyy figured out that they can be used.
Yes, it is probably a bit underdocumented. The rule of thumb is don't use it anywhere else except for device probe callbacks (and functions that are only called from a device probe function) and only for the device that is being probed. There are probably a couple of instances in the kernel where the manged resource allocators are used in places where they shouldn't be used.
- Lars