diff options
author | Tony Prisk <linux@prisktech.co.nz> | 2013-05-18 09:18:49 +1200 |
---|---|---|
committer | Mike Turquette <mturquette@linaro.org> | 2013-05-29 16:13:58 -0700 |
commit | 419e321df8d7d605f21f980903befc65ee66e848 (patch) | |
tree | 31996345df3b54495aaa3008c9f68a9d7f835400 | |
parent | 6532cb71fb31436b8d31818a056f45b8f95dfb31 (diff) | |
download | linux-3.10-419e321df8d7d605f21f980903befc65ee66e848.tar.gz linux-3.10-419e321df8d7d605f21f980903befc65ee66e848.tar.bz2 linux-3.10-419e321df8d7d605f21f980903befc65ee66e848.zip |
clk: vt8500: Fix unbalanced spinlock in vt8500_dclk_set_rate()
With the addition of a DVO clock, a bug is now evident in the vt8500
clock code:
[ 0.290000] WARNING: at init/main.c:698 do_one_initcall+0x158/0x18c()
[ 0.300000] initcall wm8505fb_driver_init+0x0/0xc returned with disabled int
This is caused by an unbalanced spinlock in vt8500_dclk_set_rate().
Replace the second call to spin_lock_irqsave() with spin_unlock_irqrestore().
Signed-off-by: Tony Prisk <linux@prisktech.co.nz>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
-rw-r--r-- | drivers/clk/clk-vt8500.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clk/clk-vt8500.c b/drivers/clk/clk-vt8500.c index debf688afa8..553ac35bcc9 100644 --- a/drivers/clk/clk-vt8500.c +++ b/drivers/clk/clk-vt8500.c @@ -183,7 +183,7 @@ static int vt8500_dclk_set_rate(struct clk_hw *hw, unsigned long rate, writel(divisor, cdev->div_reg); vt8500_pmc_wait_busy(); - spin_lock_irqsave(cdev->lock, flags); + spin_unlock_irqrestore(cdev->lock, flags); return 0; } |