On Tue, Mar 13, 2007 at 06:49:50PM +0000, Paulo Marques wrote:
> Alexey Dobriyan wrote:
> >[...]
> >What happens is that module_get_kallsym() drops module_mutex,
> >returns "struct module *", module unloaded, "struct module *"
> >used.
>
> The only use for the "struct module *" is to display the name of the
> module.

Ehh?

> This can be solved by adding a "char mod_name[MODULE_NAME_LEN];" field
> to "kallsym_iter" and copy the name of the module over, while still
> holding module_mutex. It would be slightly slower, but safer.

        iter->owner = module_get_kallsym(iter->pos - kallsyms_num_syms,
                                         &iter->value, &iter->type,
                                         iter->name, sizeof(iter->name));
        if (iter->owner == NULL)
                return 0;

        /* Label it "global" if it is exported, "local" if not exported. */
        iter->type = is_exported(iter->name, iter->owner)
                                             ^^^^^^^^^^^

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

Reply via email to