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

From: Andrew Morton
Date: Mon May 29 2006 - 21:29:13 EST


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?

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

-
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/