On Fri, Apr 12, 2019 at 11:31:42AM -0700, Stephen Boyd wrote:
> We recently introduced a change to support devm clk lookups. That change
> introduced a code-path that used clk_find() without holding the
> 'clocks_mutex'. Unfortunately, clk_find() iterates over the 'clocks'
> list and so we need to prevent the list from being modified at the same
> time. Do this by holding the mutex and checking to make sure it's held
> while iterating the list.
> 
> Note, we don't really care if the lookup is freed after we find it with
> clk_find() because we're just doing a pointer comparison, but if we did
> care we would need to keep holding the mutex while we dereference the
> clk_lookup pointer.
> 
> Fixes: 3eee6c7d119c ("clkdev: add managed clkdev lookup registration")
> Cc: Miquel Raynal <miquel.ray...@bootlin.com>
> Cc: Jerome Brunet <jbru...@baylibre.com>
> Cc: Russell King <li...@armlinux.org.uk>
> Cc: Michael Turquette <mturque...@baylibre.com>
> Cc: Jeffrey Hugo <jh...@codeaurora.org>
> Cc: Chen-Yu Tsai <w...@csie.org>
> Cc: Matti Vaittinen <matti.vaitti...@fi.rohmeurope.com>
> Signed-off-by: Stephen Boyd <sb...@kernel.org>
Acked-By: Matti Vaittinen <matti.vaitti...@fi.rohmeurope.com>

Reply via email to