提交 38c484fa 编写于 作者: J Jan Beulich 提交者: Wim Van Sebroeck

watchdog: xen: don't clear is_active when xen_wdt_stop() failed

xen_wdt_release() shouldn't clear is_active even when the watchdog
didn't get stopped (which by itself shouldn't happen, but let's return
a proper error in this case rather than adding a BUG() upon hypercall
failure).
Signed-off-by: NJan Beulich <jbeulich@suse.com>
Signed-off-by: NWim Van Sebroeck <wim@iguana.be>
上级 83448bf7
......@@ -132,15 +132,17 @@ static int xen_wdt_open(struct inode *inode, struct file *file)
static int xen_wdt_release(struct inode *inode, struct file *file)
{
int err = 0;
if (expect_release)
xen_wdt_stop();
err = xen_wdt_stop();
else {
pr_crit("unexpected close, not stopping watchdog!\n");
xen_wdt_kick();
}
is_active = false;
is_active = err;
expect_release = false;
return 0;
return err;
}
static ssize_t xen_wdt_write(struct file *file, const char __user *data,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册