* [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 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
* 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
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®