Re: [alsa-devel] [PATCH] ASoC: sgtl5000: Use devm_ functions

From: Lars-Peter Clausen
Date: Mon Jul 07 2014 - 11:35:27 EST


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@xxxxxxx> 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@xxxxxxxxxxxxx>
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/