pci_dev_put(esb_pci); 
static int __init watchdog_init (void){        int ret;        spin_lock_init(&esb_lock);        /* Check whether or not the hardware watchdog is there */        if (!esb_getdevice () || esb_pci == NULL)                return -ENODEV;        /* Check that the heartbeat value is within it's range ; if not reset to the default */        if (esb_timer_set_heartbeat (heartbeat)) {                esb_timer_set_heartbeat (WATCHDOG_HEARTBEAT);                printk(KERN_INFO PFX "heartbeat value must be 1<heartbeat<2046, using %d\n",		       heartbeat);        }        ret = register_reboot_notifier(&esb_notifier);        if (ret != 0) {                printk(KERN_ERR PFX "cannot register reboot notifier (err=%d)\n",                        ret);                goto err_unmap;        }        ret = misc_register(&esb_miscdev);        if (ret != 0) {                printk(KERN_ERR PFX "cannot register miscdev on minor=%d (err=%d)\n",                        WATCHDOG_MINOR, ret);                goto err_notifier;        }        esb_timer_stop ();        printk (KERN_INFO PFX "initialized (0x%p). heartbeat=%d sec (nowayout=%d)\n",                BASEADDR, heartbeat, nowayout);        return 0;err_notifier:        unregister_reboot_notifier(&esb_notifier);err_unmap:	iounmap(BASEADDR);/* err_release: */	pci_release_region(esb_pci, 0);/* err_disable: */	pci_disable_device(esb_pci);/* out: */        return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c69af038cad5e6ea86e927a17b70b49af1f7cbfa/i6300esb.c/buggy/drivers/char/watchdog/i6300esb.c