[PATCH] Fix module module_init/init_size offsets for v4.5 kernel
Pratyush Anand
panand at redhat.com
Thu Oct 27 23:17:55 PDT 2016
On Friday 28 October 2016 10:37 AM, Kamalesh Babulal wrote:
> Kernel commit 7523e4dc50 (module: use a structure to encapsulate layout.)
> encapsulates core_layout and init_layout into module_layout structure.
>
> commit fa6a75a93 (Fix module core base and size offset for kernel v4.5)
> fixes offset value calculation for core layout's base and size, whereas
> Kernel v4.5 module changes also needs fixing of module init_size and
> module_init for the makedumpfile to read the correct module address.
>
> This patch fixes calculation of offsets values for module init_size and
> module_init.
>
> Signed-off-by: Kamalesh Babulal <kamalesh at linux.vnet.ibm.com>
> Cc: Pratyush Anand <panand at redhat.com>
Reviewed-by: Pratyush Anand <panand at redhat.com>
> ---
> makedumpfile.c | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/makedumpfile.c b/makedumpfile.c
> index 853b999..f33a90d 100644
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -1689,7 +1689,25 @@ get_structure_info(void)
> OFFSET(module.core_size) += core_layout;
> }
> OFFSET_INIT(module.module_init, "module", "module_init");
> + if (OFFSET(module.module_init) == NOT_FOUND_STRUCTURE) {
> + /* for kernel version 4.5 and above */
> + long init_layout;
> +
> + OFFSET_INIT(module.module_init, "module", "init_layout");
> + init_layout = OFFSET(module.module_init);
> + OFFSET_INIT(module.module_init, "module_layout", "base");
> + OFFSET(module.module_init) += init_layout;
> + }
> OFFSET_INIT(module.init_size, "module", "init_size");
> + if (OFFSET(module.init_size) == NOT_FOUND_STRUCTURE) {
> + /* for kernel version 4.5 and above */
> + long init_layout;
> +
> + OFFSET_INIT(module.init_size, "module", "init_layout");
> + init_layout = OFFSET(module.init_size);
> + OFFSET_INIT(module.init_size, "module_layout", "size");
> + OFFSET(module.init_size) += init_layout;
> + }
>
> ENUM_NUMBER_INIT(NR_FREE_PAGES, "NR_FREE_PAGES");
> ENUM_NUMBER_INIT(N_ONLINE, "N_ONLINE");
>
More information about the kexec
mailing list