Re: [patch] 2.4.2 Advantech WDT driver

Jeff Garzik
2001-02-28T17:38:19Z

Marek Michalkiewicz wrote:
> +static int
> +advwdt_close(struct inode *inode, struct file *file)
> +{
> + lock_kernel();
> + if (MINOR(inode->i_rdev) == WATCHDOG_MINOR) {
> + spin_lock(&advwdt_lock);
> +#ifndef CONFIG_WATCHDOG_NOWAYOUT
> + inb_p(WDT_STOP);
> +#endif
> + advwdt_is_open = 0;
> + spin_unlock(&advwdt_lock);
> + }
> + unlock_kernel();
> + return 0;
> +}

Why is lock_kernel necessary?

> +static int __init
> +advwdt_init(void)
> +{
> + printk("WDT driver for Advantech single board computer initialising.\n");
> +
> + spin_lock_init(&advwdt_lock);
> + misc_register(&advwdt_miscdev);

check return code for error

> +#if WDT_START != WDT_STOP
> + request_region(WDT_STOP, 1, "Advantech WDT");
> +#endif
> + request_region(WDT_START, 1, "Advantech WDT");

check return..

> + register_reboot_notifier(&advwdt_notifier);

ditto

--
Jeff Garzik | "You see, in this world there's two kinds of
Building 1024 | people, my friend: Those with loaded guns
MandrakeSoft | and those who dig. You dig." --Blondie