Re: [patch 06/61] lock validator: add __module_address() method

From: Ingo Molnar
Date: Fri Jun 23 2006 - 04:42:16 EST



* Andrew Morton <akpm@xxxxxxxx> wrote:

> On Mon, 29 May 2006 23:23:33 +0200
> Ingo Molnar <mingo@xxxxxxx> wrote:
>
> > +/*
> > + * Is this a valid module address? We don't grab the lock.
> > + */
> > +int __module_address(unsigned long addr)
> > +{
> > + struct module *mod;
> > +
> > + list_for_each_entry(mod, &modules, list)
> > + if (within(addr, mod->module_core, mod->core_size))
> > + return 1;
> > + return 0;
> > +}
>
> Returns a boolean.
>
> > /* Is this a valid kernel address? We don't grab the lock: we are oopsing. */
> > struct module *__module_text_address(unsigned long addr)
>
> But this returns a module*.
>
> I'd suggest that __module_address() should do the same thing, from an
> API neatness POV. Although perhaps that's mot very useful if we
> didn't take a ref on the returned object (but module_text_address()
> doesn't either).
>
> Also, the name's a bit misleading - it sounds like it returns the
> address of a module or something. __module_any_address() would be
> better, perhaps?

yeah. I changed this to __is_module_address().

> Also, how come this doesn't need modlist_lock()?

indeed. I originally avoided taking that lock due to recursion worries -
but in fact we use this only in sections that initialize a lock - hence
no recursion problems.

i fixed this and renamed the function to is_module_address() :)

Ingo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/