summaryrefslogtreecommitdiffstats
path: root/drivers/watchdog/sc1200wdt.c
diff options
context:
space:
mode:
authorDoug Anderson <dianders@chromium.org>2015-05-07 21:27:44 -0700
committerWim Van Sebroeck <wim@iguana.be>2015-06-22 15:54:31 +0200
commit7fb466a7a7362de19b8f2aa07cffa79e527cf070 (patch)
tree8f3253b98f415320f7cf003bfc5ec0d118ef4fd3 /drivers/watchdog/sc1200wdt.c
parent30dd4a8f08b570b5ed978fd937fdb5c31194be41 (diff)
downloadlinux-7fb466a7a7362de19b8f2aa07cffa79e527cf070.tar.bz2
watchdog: dw_wdt: No need for a spinlock
Right now the dw_wdt uses a spinlock to protect dw_wdt_open(). The problem is that while holding the spinlock we call: -> dw_wdt_set_top() -> dw_wdt_top_in_seconds() -> clk_get_rate() -> clk_prepare_lock() -> mutex_lock() Locking a mutex while holding a spinlock is not allowed and leads to warnings like "BUG: spinlock wrong CPU on CPU#1", among other problems. There's no reason to use a spinlock. Only dw_wdt_open() was protected and the test_and_set_bit() at the start of that function protects us anyway. Signed-off-by: Doug Anderson <dianders@chromium.org> Tested-by: Jisheng Zhang <jszhang@marvell.com> Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog/sc1200wdt.c')
0 files changed, 0 insertions, 0 deletions