mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
@ 2006-10-06  4:57 Amol Lad
  2006-10-06 20:40 ` Andrew Morton
  2006-10-06 20:41 ` Andrew Morton
  0 siblings, 2 replies; 5+ messages in thread
From: Amol Lad @ 2006-10-06  4:57 UTC (permalink / raw)
  To: linux kernel; +Cc: Andrew Morton

Signed-off-by: Amol Lad <amol@verismonetworks.com>
---
 s3c2410_wdt.c |    5 +++++
 1 files changed, 5 insertions(+)
---
diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c
--- linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:00:43.000000000 +0530
+++ linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:50:00.000000000 +0530
@@ -381,18 +381,21 @@ static int s3c2410wdt_probe(struct platf
 	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;
 	}
 
@@ -416,6 +419,7 @@ static int s3c2410wdt_probe(struct platf
 	if (ret) {
 		printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
 			WATCHDOG_MINOR, ret);
+		iounmap(wdt_base);
 		return ret;
 	}
 
@@ -452,6 +456,7 @@ static int s3c2410wdt_remove(struct plat
 		wdt_clock = NULL;
 	}
 
+	iounmap(wdt_base);
 	misc_deregister(&s3c2410wdt_miscdev);
 	return 0;
 }



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
  2006-10-06  4:57 [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c Amol Lad
@ 2006-10-06 20:40 ` Andrew Morton
  2006-11-12 13:28   ` Ben Dooks
  2006-10-06 20:41 ` Andrew Morton
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2006-10-06 20:40 UTC (permalink / raw)
  To: Amol Lad; +Cc: linux kernel, Wim Coekaerts

On Fri, 06 Oct 2006 10:27:07 +0530
Amol Lad <amol@verismonetworks.com> wrote:

> Signed-off-by: Amol Lad <amol@verismonetworks.com>
> ---
>  s3c2410_wdt.c |    5 +++++
>  1 files changed, 5 insertions(+)
> ---
> diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c
> --- linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:00:43.000000000 +0530
> +++ linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:50:00.000000000 +0530
> @@ -381,18 +381,21 @@ static int s3c2410wdt_probe(struct platf
>  	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;
>  	}
>  
> @@ -416,6 +419,7 @@ static int s3c2410wdt_probe(struct platf
>  	if (ret) {
>  		printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
>  			WATCHDOG_MINOR, ret);
> +		iounmap(wdt_base);
>  		return ret;
>  	}
>  

barf.  That function has to set the record for the
number-of-return-statements-per-line.  There are good reasons why we prefer
to have a single return point at which to handle all the error unwinding,
and the above patch illustrates one of them.

Sigh.  Oh well, patch looks correct - I'll start spamming Wim with it,
thanks.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
  2006-10-06  4:57 [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c Amol Lad
  2006-10-06 20:40 ` Andrew Morton
@ 2006-10-06 20:41 ` Andrew Morton
  2006-10-07 20:47   ` Wim Van Sebroeck
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2006-10-06 20:41 UTC (permalink / raw)
  To: Amol Lad; +Cc: linux kernel, Wim Van Sebroeck

On Fri, 06 Oct 2006 10:27:07 +0530
Amol Lad <amol@verismonetworks.com> wrote:

> Signed-off-by: Amol Lad <amol@verismonetworks.com>
> ---
>  s3c2410_wdt.c |    5 +++++
>  1 files changed, 5 insertions(+)
> ---
> diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c
> --- linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:00:43.000000000 +0530
> +++ linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:50:00.000000000 +0530
> @@ -381,18 +381,21 @@ static int s3c2410wdt_probe(struct platf
>  	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;
>  	}
>  
> @@ -416,6 +419,7 @@ static int s3c2410wdt_probe(struct platf
>  	if (ret) {
>  		printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
>  			WATCHDOG_MINOR, ret);
> +		iounmap(wdt_base);
>  		return ret;
>  	}
>  

barf.  That function has to set the record for the
number-of-return-statements-per-line.  There are good reasons why we prefer
to have a single return point at which to handle all the error unwinding,
and the above patch illustrates one of them.

Sigh.  Oh well, patch looks correct - I'll start spamming Wim with it,
thanks.

(Not that Wim - this Wim).


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
  2006-10-06 20:41 ` Andrew Morton
@ 2006-10-07 20:47   ` Wim Van Sebroeck
  0 siblings, 0 replies; 5+ messages in thread
From: Wim Van Sebroeck @ 2006-10-07 20:47 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Amol Lad, linux kernel

Hi All,

> barf.  That function has to set the record for the
> number-of-return-statements-per-line.  There are good reasons why we prefer
> to have a single return point at which to handle all the error unwinding,
> and the above patch illustrates one of them.
> 
> Sigh.  Oh well, patch looks correct - I'll start spamming Wim with it,
> thanks.
> 
> (Not that Wim - this Wim).

Added it to the linux-2.6-watchdog-mm tree.

Greetings,
Wim.


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c
  2006-10-06 20:40 ` Andrew Morton
@ 2006-11-12 13:28   ` Ben Dooks
  0 siblings, 0 replies; 5+ messages in thread
From: Ben Dooks @ 2006-11-12 13:28 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Amol Lad, linux kernel, Wim Coekaerts

On Fri, Oct 06, 2006 at 01:40:20PM -0700, Andrew Morton wrote:
> On Fri, 06 Oct 2006 10:27:07 +0530
> Amol Lad <amol@verismonetworks.com> wrote:
> 
> > Signed-off-by: Amol Lad <amol@verismonetworks.com>
> > ---
> >  s3c2410_wdt.c |    5 +++++
> >  1 files changed, 5 insertions(+)
> > ---
> > diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c
> > --- linux-2.6.19-rc1-orig/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:00:43.000000000 +0530
> > +++ linux-2.6.19-rc1/drivers/char/watchdog/s3c2410_wdt.c	2006-10-05 14:50:00.000000000 +0530
> > @@ -381,18 +381,21 @@ static int s3c2410wdt_probe(struct platf
> >  	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;
> >  	}
> >  
> > @@ -416,6 +419,7 @@ static int s3c2410wdt_probe(struct platf
> >  	if (ret) {
> >  		printk (KERN_ERR PFX "cannot register miscdev on minor=%d (%d)\n",
> >  			WATCHDOG_MINOR, ret);
> > +		iounmap(wdt_base);
> >  		return ret;
> >  	}
> >  
> 
> barf.  That function has to set the record for the
> number-of-return-statements-per-line.  There are good reasons why we prefer
> to have a single return point at which to handle all the error unwinding,
> and the above patch illustrates one of them.

I'll try and sort this out once 2.6.19 is out.

-- 
Ben (ben@fluff.org, http://www.fluff.org/)

  'a smiley only costs 4 bytes'

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-11-12 13:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-06  4:57 [PATCH 5/5] ioremap balanced with iounmap for drivers/char/watchdog/s3c2410_wdt.c Amol Lad
2006-10-06 20:40 ` Andrew Morton
2006-11-12 13:28   ` Ben Dooks
2006-10-06 20:41 ` Andrew Morton
2006-10-07 20:47   ` Wim Van Sebroeck

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®