Re: [PATCH v7] module: replace module_layout with module_memory

From: Song Liu
Date: Wed Feb 01 2023 - 17:28:12 EST




> On Feb 1, 2023, at 1:24 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Wed, Feb 01, 2023 at 10:44:22AM -0800, Song Liu wrote:
>
>> static ssize_t show_datasize(struct module_attribute *mattr,
>> struct module_kobject *mk, char *buffer)
>> {
>> - return sprintf(buffer, "%u\n", mk->mod->data_layout.size);
>> + unsigned int size = 0;
>> +
>> + for_class_mod_mem_type(type, core) {
>> + if (type == MOD_TEXT)
>> + continue;
>
> isn't this the same as:
>
> for_class_mod_mem_type(type, core_data)
>
> ?

Great catch!

>
>> + size += mk->mod->mem[type].size;
>> + }
>> + return sprintf(buffer, "%u\n", size);
>> }
>
>
>> - lockdep_free_key_range(mod->data_layout.base, mod->data_layout.size);
>> + for_class_mod_mem_type(type, core) {
>> + lockdep_free_key_range(mod->mem[type].base,
>> + mod->mem[type].size);
>> + }
>
> Why the core_data to core change? Specifically the difference seems to
> be you now include text. Now, we shouldn't be having lockdep keys in
> text, so it's harmless, still a bit weird.

Will fix!

Thanks,
Song