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: Jan Beulich <jbeulich@suse.com> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
Родитель
83448bf786
Коммит
38c484fa13
|
@ -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,
|
||||
|
|
Загрузка…
Ссылка в новой задаче