Hi John, > +static int > +ltq_wdt_open(struct inode *inode, struct file *file) > +{ > + if (ltq_wdt_in_use) > + return -EBUSY; > + ltq_wdt_in_use = 1; > + ltq_wdt_enable(); > + > + return nonseekable_open(inode, file); > +} I prefer to see a test_and_set_bit(ltq_wdt_in_use) and a ... > +static int > +ltq_wdt_release(struct inode *inode, struct file *file) > +{ > + if (ltq_wdt_ok_to_close) > + ltq_wdt_disable(); > + else > + pr_err("ltq_wdt: watchdog closed without warning\n"); > + ltq_wdt_ok_to_close = 0; > + ltq_wdt_in_use = 0; > + > + return 0; > +} ... clear_bit(ltq_wdt_in_use); For the rest is looks ok for me. So Signed-off-by: Wim Van Sebroeck <wim@xxxxxxxxx> Kind regards, Wim.