Mike Rapoport (IBM) f6bec26c0a mm/execmem, arch: convert simple overrides of module_alloc to execmem
Several architectures override module_alloc() only to define address
range for code allocations different than VMALLOC address space.

Provide a generic implementation in execmem that uses the parameters for
address space ranges, required alignment and page protections provided
by architectures.

The architectures must fill execmem_info structure and implement
execmem_arch_setup() that returns a pointer to that structure. This way the
execmem initialization won't be called from every architecture, but rather
from a central place, namely a core_initcall() in execmem.

The execmem provides execmem_alloc() API that wraps __vmalloc_node_range()
with the parameters defined by the architectures.  If an architecture does
not implement execmem_arch_setup(), execmem_alloc() will fall back to
module_alloc().

Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
Acked-by: Song Liu <song@kernel.org>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
2024-05-14 00:31:43 -07:00
..
2024-03-11 09:38:17 -07:00
2023-12-12 10:11:32 +01:00
2023-04-12 17:36:23 -07:00
2024-02-24 15:53:40 -08:00
2024-03-13 18:38:13 -04:00
2022-10-03 14:02:43 -07:00
2024-04-07 13:49:02 +02:00
2024-02-21 16:00:03 -08:00
2024-05-01 18:07:35 +01:00
2024-05-13 11:40:06 -07:00
2024-05-13 10:28:34 -07:00
2023-04-12 17:36:23 -07:00