unregister_reboot_notifier(&s3c2410wdt_notifier); 
static int s3c2410wdt_probe(struct device *dev){	struct platform_device *pdev = to_platform_device(dev);	struct resource *res;	int started = 0;	int ret;	int size;	DBG("%s: probe=%p, device=%p\n", __FUNCTION__, pdev, dev);	/* get the memory region for the watchdog timer */	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);	if (res == NULL) {		printk(KERN_INFO PFX "failed to get memory region resouce\n");		return -ENOENT;	}	size = (res->end-res->start)+1;	wdt_mem = request_mem_region(res->start, size, pdev->name);	if (wdt_mem == NULL) {		printk(KERN_INFO PFX "failed to get memory region\n");		return -ENOENT;	}	wdt_base = ioremap(res->start, size);	if (wdt_base == 0) {		printk(KERN_INFO PFX "failed to ioremap() region\n");		return -EINVAL;	}	DBG("probe: mapped wdt_base=%p\n", wdt_base);	res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);	if (res == NULL) {		printk(KERN_INFO PFX "failed to get irq resource\n");		return -ENOENT;	}	ret = request_irq(res->start, s3c2410wdt_irq, 0, pdev->name, dev);	if (ret != 0) {		printk(KERN_INFO PFX "failed to install irq (%d)\n", ret);		return ret;	}	wdt_clock = clk_get(dev, "watchdog");	if (wdt_clock == NULL) {		printk(KERN_INFO PFX "failed to find watchdog clock source\n");		return -ENOENT;	}	clk_use(wdt_clock);	clk_enable(wdt_clock);	/* see if we can actually set the requested timer margin, and if	 * not, try the default value */	if (s3c2410wdt_set_heartbeat(tmr_margin)) {		started = s3c2410wdt_set_heartbeat(CONFIG_S3C2410_WATCHDOG_DEFAULT_TIME);		if (started == 0) {			printk(KERN_INFO PFX "tmr_margin value out of range, default %d used\n",			       CONFIG_S3C2410_WATCHDOG_DEFAULT_TIME);		} else {			printk(KERN_INFO PFX "default timer value is out of range, cannot start\n");		}	}	ret = register_reboot_notifier(&s3c2410wdt_notifier);	if (ret) {		printk (KERN_ERR PFX "cannot register reboot notifier (%d)\n",			ret);		return ret;	}	ret = misc_register(&s3c2410wdt_miscdev);	if (ret) {		printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",			WATCHDOG_MINOR, ret);		unregister_reboot_notifier(&s3c2410wdt_notifier);		return ret;	}	if (tmr_atboot && started == 0) {		printk(KERN_INFO PFX "Starting Watchdog Timer\n");		s3c2410wdt_start();	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/94f1e9f316b10972b77a64344006c3bf8a4929b4/s3c2410_wdt.c/clean/drivers/char/watchdog/s3c2410_wdt.c