clk: rockchip: fix deadlock possibility in cpuclk
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:
Heiko Stuebner <heiko@sntech.de>
Reviewed-by:  Doug Anderson <dianders@chromium.org>
Signed-off-by:
Doug Anderson <dianders@chromium.org>
Signed-off-by:  Michael Turquette <mturquette@linaro.org>
[mturquette@linaro.org: removed initialization of "flags"]
Michael Turquette <mturquette@linaro.org>
[mturquette@linaro.org: removed initialization of "flags"]
Loading
Please register or sign in to comment
