Re: [PATCH 04/13] resource: Provide new functions to walk through resources

Vivek Goyal
2014-06-05T13:59:38Z

On Wed, Jun 04, 2014 at 12:24:20PM +0200, Borislav Petkov wrote:
> On Tue, Jun 03, 2014 at 09:06:53AM -0400, Vivek Goyal wrote:
> > @@ -322,7 +327,71 @@ int release_resource(struct resource *old)
> >
> > EXPORT_SYMBOL(release_resource);
> >
> > -#if !defined(CONFIG_ARCH_HAS_WALK_MEMORY)
> > +/*
> > + * Finds the lowest iomem reosurce exists with-in [res->start.res->end)
> > + * the caller must specify res->start, res->end, res->flags and "name".
> > + * If found, returns 0, res is overwritten, if not found, returns -1.
> > + * This walks through whole tree and not just first level children.
> > + */
> > +static int find_next_iomem_res(struct resource *res, char *name)
> > +{
> > + resource_size_t start, end;
> > + struct resource *p;
> > +
> > + BUG_ON(!res);
> > +
> > + start = res->start;
> > + end = res->end;
> > + BUG_ON(start >= end);
> > +
> > + read_lock(&resource_lock);
> > + p = &iomem_resource;
> > + while ((p = next_resource(p))) {
>
> Just a thought - this function differs from find_next_system_ram() only
> in the traversal mode through resources. I wonder if next_resource()
> could be given a flag, say TRAVERSE_SIBLINGS_ONLY or so and be called
> from both, once with the flag set and once without and thus save us the
> code duplication.

Yep, that makes sense. I will change it and start passing a flag.

Thanks
Vivek