Lines Matching refs:wdd
295 struct watchdog_device *wdd = file->private_data; in watchdog_write() local
306 clear_bit(WDOG_ALLOW_RELEASE, &wdd->status); in watchdog_write()
313 set_bit(WDOG_ALLOW_RELEASE, &wdd->status); in watchdog_write()
317 watchdog_ping(wdd); in watchdog_write()
335 struct watchdog_device *wdd = file->private_data; in watchdog_ioctl() local
341 err = watchdog_ioctl_op(wdd, cmd, arg); in watchdog_ioctl()
347 return copy_to_user(argp, wdd->info, in watchdog_ioctl()
350 err = watchdog_get_status(wdd, &val); in watchdog_ioctl()
355 return put_user(wdd->bootstatus, p); in watchdog_ioctl()
360 err = watchdog_stop(wdd); in watchdog_ioctl()
365 err = watchdog_start(wdd); in watchdog_ioctl()
371 if (!(wdd->info->options & WDIOF_KEEPALIVEPING)) in watchdog_ioctl()
373 watchdog_ping(wdd); in watchdog_ioctl()
378 err = watchdog_set_timeout(wdd, val); in watchdog_ioctl()
384 watchdog_ping(wdd); in watchdog_ioctl()
388 if (wdd->timeout == 0) in watchdog_ioctl()
390 return put_user(wdd->timeout, p); in watchdog_ioctl()
392 err = watchdog_get_timeleft(wdd, &val); in watchdog_ioctl()
414 struct watchdog_device *wdd; in watchdog_open() local
418 wdd = old_wdd; in watchdog_open()
420 wdd = container_of(inode->i_cdev, struct watchdog_device, cdev); in watchdog_open()
423 if (test_and_set_bit(WDOG_DEV_OPEN, &wdd->status)) in watchdog_open()
430 if (!try_module_get(wdd->ops->owner)) in watchdog_open()
433 err = watchdog_start(wdd); in watchdog_open()
437 file->private_data = wdd; in watchdog_open()
439 if (wdd->ops->ref) in watchdog_open()
440 wdd->ops->ref(wdd); in watchdog_open()
446 module_put(wdd->ops->owner); in watchdog_open()
448 clear_bit(WDOG_DEV_OPEN, &wdd->status); in watchdog_open()
464 struct watchdog_device *wdd = file->private_data; in watchdog_release() local
472 if (!test_bit(WDOG_ACTIVE, &wdd->status)) in watchdog_release()
474 else if (test_and_clear_bit(WDOG_ALLOW_RELEASE, &wdd->status) || in watchdog_release()
475 !(wdd->info->options & WDIOF_MAGICCLOSE)) in watchdog_release()
476 err = watchdog_stop(wdd); in watchdog_release()
480 mutex_lock(&wdd->lock); in watchdog_release()
481 if (!test_bit(WDOG_UNREGISTERED, &wdd->status)) in watchdog_release()
482 dev_crit(wdd->dev, "watchdog did not stop!\n"); in watchdog_release()
483 mutex_unlock(&wdd->lock); in watchdog_release()
484 watchdog_ping(wdd); in watchdog_release()
488 module_put(wdd->ops->owner); in watchdog_release()
491 clear_bit(WDOG_DEV_OPEN, &wdd->status); in watchdog_release()
494 if (wdd->ops->unref) in watchdog_release()
495 wdd->ops->unref(wdd); in watchdog_release()