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

Vivek Goyal vgoyal at redhat.com
Thu Jun 5 06:58:57 PDT 2014


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



More information about the kexec mailing list