[PATCH v3 03/13] mm/execmem, arch: convert simple overrides of module_alloc to execmem
Edgecombe, Rick P
rick.p.edgecombe at intel.com
Tue Oct 3 17:29:58 PDT 2023
On Mon, 2023-09-18 at 10:29 +0300, Mike Rapoport wrote:
> +
> +static void execmem_init_missing(struct execmem_params *p)
> +{
> + struct execmem_range *default_range = &p-
> >ranges[EXECMEM_DEFAULT];
> +
> + for (int i = EXECMEM_DEFAULT + 1; i < EXECMEM_TYPE_MAX; i++)
> {
> + struct execmem_range *r = &p->ranges[i];
> +
> + if (!r->start) {
> + r->pgprot = default_range->pgprot;
> + r->alignment = default_range->alignment;
> + r->start = default_range->start;
> + r->end = default_range->end;
> + }
> + }
> +}
> +
It seems a bit weird to copy all of this. Is it trying to be faster or
something?
Couldn't it just check r->start in execmem_text/data_alloc() path and
switch to EXECMEM_DEFAULT if needed then? The execmem_range_is_data()
part that comes later could be added to the logic there too. So this
seems like unnecessary complexity to me or I don't see the reason.
More information about the linux-riscv
mailing list