Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
authorLinus Torvalds <torvalds@g5.osdl.org>
Mon, 23 Oct 2006 22:56:26 +0000 (15:56 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 23 Oct 2006 22:56:26 +0000 (15:56 -0700)
* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog: (33 commits)
  [WATCHDOG] remove experimental on iTCO_wdt.c
  [WATCHDOG] Atmel AT91RM9200 rename.
  [WATCHDOG] includes for sample watchdog program.
  [WATCHDOG] watchdog/iTCO_wdt: fix bug related to gcc uninit warning
  [WATCHDOG] add ich8 support to iTCO_wdt.c (patch 2)
  [WATCHDOG] add ich8 support to iTCO_wdt.c
  [WATCHDOG] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
  [WATCHDOG] w83697hf/hg WDT driver - Kconfig patch
  [WATCHDOG] w83697hf/hg WDT driver - autodetect patch
  [WATCHDOG] w83697hf/hg WDT driver - patch 16
  [WATCHDOG] w83697hf/hg WDT driver - patch 15
  [WATCHDOG] w83697hf/hg WDT driver - patch 14
  [WATCHDOG] w83697hf/hg WDT driver - patch 13
  [WATCHDOG] w83697hf/hg WDT driver - patch 12
  [WATCHDOG] w83697hf/hg WDT driver - patch 11
  [WATCHDOG] w83697hf/hg WDT driver - patch 10
  [WATCHDOG] w83697hf/hg WDT driver - patch 9
  [WATCHDOG] w83697hf/hg WDT driver - patch 8
  [WATCHDOG] w83697hf/hg WDT driver - patch 7
  [WATCHDOG] w83697hf/hg WDT driver - patch 6
  ...

1  2 
drivers/char/watchdog/s3c2410_wdt.c

@@@ -336,7 -336,8 +336,7 @@@ static struct miscdevice s3c2410wdt_mis
  
  /* interrupt handler code */
  
 -static irqreturn_t s3c2410wdt_irq(int irqno, void *param,
 -                                struct pt_regs *regs)
 +static irqreturn_t s3c2410wdt_irq(int irqno, void *param)
  {
        printk(KERN_INFO PFX "Watchdog timer expired!\n");
  
@@@ -380,18 -381,21 +380,21 @@@ static int s3c2410wdt_probe(struct plat
        res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        if (res == NULL) {
                printk(KERN_INFO PFX "failed to get irq resource\n");
+               iounmap(wdt_base);
                return -ENOENT;
        }
  
        ret = request_irq(res->start, s3c2410wdt_irq, 0, pdev->name, pdev);
        if (ret != 0) {
                printk(KERN_INFO PFX "failed to install irq (%d)\n", ret);
+               iounmap(wdt_base);
                return ret;
        }
  
        wdt_clock = clk_get(&pdev->dev, "watchdog");
        if (wdt_clock == NULL) {
                printk(KERN_INFO PFX "failed to find watchdog clock source\n");
+               iounmap(wdt_base);
                return -ENOENT;
        }
  
        if (ret) {
                printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
                        WATCHDOG_MINOR, ret);
+               iounmap(wdt_base);
                return ret;
        }
  
@@@ -451,6 -456,7 +455,7 @@@ static int s3c2410wdt_remove(struct pla
                wdt_clock = NULL;
        }
  
+       iounmap(wdt_base);
        misc_deregister(&s3c2410wdt_miscdev);
        return 0;
  }