Re: [Patch 4/4] module: trim exception table in module_free()

Amerigo Wang
2009-05-27T03:09:54Z

Rusty Russell wrote:
> On Tue, 26 May 2009 06:05:39 pm Amerigo Wang wrote:
>
>> void module_free(struct module *mod, void *module_region)
>> {
>> vfree(module_region);
>> - /* FIXME: If module_region == mod->init_region, trim exception
>> - table entries. */
>> + if (module_region == mod->module_init)
>> + mod->num_exentries = 0;
>> }
>>
>
> Hi Amerigo,
>
> This looks wrong. The extable covers both init and core exception entries.
> We want to remove the ones in the module_init section. The good news is that
> it's sorted, so they're either at the start or the end (except sparc 32).
>

Hi, Rusty.

Yes? The extable of a module is in '__ex_table' section, and during the
section transfer, one
section will be either in module_init or module_core, so its entries are
only in one of them,
not both, right?

Thank you.