Lockdep reported a possible deadlock between the cpuclk lock and for example
the i2c driver.
CPU0 CPU1
---- ----
lock(clk_lock);
local_irq_disable();
lock(&(&i2c->lock)->rlock);
lock(clk_lock);
<Interrupt>
lock(&(&i2c->lock)->rlock);
*** DEADLOCK ***
The generic clock-types of the core ccf already use spin_lock_irqsave when
touching clock registers, so do the same for the cpuclk.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
[mturquette@linaro.org: removed initialization of "flags"]
|
||
|---|---|---|
| .. | ||
| clk-cpu.c | ||
| clk-mmc-phase.c | ||
| clk-pll.c | ||
| clk-rk3188.c | ||
| clk-rk3288.c | ||
| clk-rockchip.c | ||
| clk.c | ||
| clk.h | ||
| Makefile | ||
| softrst.c | ||