X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fwatchdog%2Fwatchdog_dev.c;h=6aaefbad303e0901c2f44d923059bde901168dd2;hb=1e27ab4d297fda68b0f2cdb6b274108c2a4a350e;hp=faf4e189fe423179cb0261e77a3519a2a2b1c03e;hpb=c583eac39abfd45d1985f60c5c1727e585fadbdd;p=karo-tx-linux.git diff --git a/drivers/watchdog/watchdog_dev.c b/drivers/watchdog/watchdog_dev.c index faf4e189fe42..6aaefbad303e 100644 --- a/drivers/watchdog/watchdog_dev.c +++ b/drivers/watchdog/watchdog_dev.c @@ -469,8 +469,10 @@ static int watchdog_release(struct inode *inode, struct file *file) * or if WDIOF_MAGICCLOSE is not set. If nowayout was set then * watchdog_stop will fail. */ - if (test_and_clear_bit(WDOG_ALLOW_RELEASE, &wdd->status) || - !(wdd->info->options & WDIOF_MAGICCLOSE)) + if (!test_bit(WDOG_ACTIVE, &wdd->status)) + err = 0; + else if (test_and_clear_bit(WDOG_ALLOW_RELEASE, &wdd->status) || + !(wdd->info->options & WDIOF_MAGICCLOSE)) err = watchdog_stop(wdd); /* If the watchdog was not stopped, send a keepalive ping */