[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] watchdog/xen: don't clear is_active when xen_wdt_stop() failed
>>> On 21.03.12 at 20:50, Wim Van Sebroeck <wim@xxxxxxxxx> wrote: > Hi Jan, > >> 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@xxxxxxxx> >> >> --- >> drivers/watchdog/xen_wdt.c | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >> >> --- 3.3/drivers/watchdog/xen_wdt.c >> +++ 3.3-xen-watchdog-release/drivers/watchdog/xen_wdt.c >> @@ -131,16 +131,18 @@ static int xen_wdt_open(struct inode *in >> >> 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 { >> printk(KERN_CRIT PFX >> "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, > > Just for my understanding: > is_active is a bool value and err is an integer. What values are returned by > xen_wdt_stop? xen_wdt_stop() returns the usual -errno values. Assignments from non-bool to bool convert the value (non-zero -> true, zero -> false), i.e. is_active gets set to false only if xen_wdt_stop() succeeded. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |