On Montag, 5. Juli 2004 11:38, you wrote: > Did you have a look allready at the different watchdog operations in > include/linux/watchdog.h ? Yes, I already have a working driver, which does not use the experimental infrastructure code. I'm just not allowed to publish it until the hardware is available. There are a couple of things I noticed about your new code: - Is there any reason having an alloc_watchdogdev function in the common code? Simply statically allocating the structure in each device driver should be a lot simpler. - Keeping watchdog_ops out of watchdog_device will simplify the lifetime rules. Just put them in the same structure, add an owner field and get rid of the *private field. - watchdog_is_open_sem can just be an atomic_t, you never actually down() it. - You need to get the module reference count before calling any watchdog operation, the best place for this is probably the open() fop. - Maybe its easier to always register the misc devices when watchdog.ko is loaded, and then deny opening them when no actual watchdog driver is registered to it. - Why do you need seperate operations for start and keepalive? - the reboot notifier and the nowayout parameter are probably common enough to be put into the generic module. Arnd <><