lkml.org 
[lkml]   [2013]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH 1/2] timer: vt8500: Move system timer to clocksource
From
Date
On Wed, 2013-01-02 at 23:35 -0800, Dmitry Torokhov wrote:
> On Thu, Jan 03, 2013 at 04:25:09PM +1300, Tony Prisk wrote:
> > +static void __init vt8500_timer_init(void)
> > +{
> > + struct device_node *np;
> > + int timer_irq;
> > +
> > + np = of_find_matching_node(NULL, vt8500_timer_ids);
> > + if (!np) {
> > + pr_err("%s: Timer description missing from Device Tree\n",
> > + __func__);
> > + return;
> > + }
> > + regbase = of_iomap(np, 0);
> > + if (!regbase) {
> > + pr_err("%s: Missing iobase description in Device Tree\n",
> > + __func__);
> > + of_node_put(np);
> > + return;
> > + }
> > + timer_irq = irq_of_parse_and_map(np, 0);
> > + if (!timer_irq) {
> > + pr_err("%s: Missing irq description in Device Tree\n",
> > + __func__);
> > + of_node_put(np);
> > + return;
>
> You are forgetting to unmap the regbase here.

Also I think it'd be nicer to write something like:

struct device_node *np;
int timer_irq;
const char *reason;

np = of_find_matching_node(NULL, vt8500_timer_ids);
if (!np) {
reason = "timer";
goto error;
}
regbase = of_iomap(np, 0);
if (!regbase) {
reason = "iobase";
goto error_put;
}
timer_irq = irq_of_parse_and_map(np, 0);
if (!timer_irq) {
reason = "irq";
goto error_remap;
}

...

error_remap:
unmap...;
error_put:
of_node_put(np);
error:
pr_err("%s: Missing %s description in Device Tree\n",
__func__, reason);
return;




\
 
 \ /
  Last update: 2013-01-03 09:22    [W:0.070 / U:0.456 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site