----- Original Message -----
>
> Jan, Thomas,
>
> Can you check whether this still works with vmcores that have modules loaded?
> My sample vmlinux/vmcores don't seem to have any modules loaded.
Same here -- my sample vmcores don't have any modules installed -- but I cannot
see how this patch can possibly hurt, and it certainly makes sense. I'm going to
queue it for crash-6.0.9 unless it gets NAK'd before I release it.
Thanks,
Dave
Also, as we discussed before, I'm also going to add
a "KERNEL MODULES BASE: <address>" line to the "mach"
command.
Thanks,
Dave
>
> diff --git a/arm.c b/arm.c
> index ea06e1a..7f63a10 100644
> --- a/arm.c
> +++ b/arm.c
> @@ -305,14 +305,20 @@ arm_init(int when)
> error(WARNING, "Couldn't retrieve crash_notes\n");
> break;
>
> - case POST_VM:
> + case POST_VM: {
> + ulong vaddr;
> +
> machdep->machspec->vmalloc_start_addr = vt->high_memory;
> /*
> * Modules are placed in first vmalloc'd area. This is 16MB
> * below PAGE_OFFSET.
> */
> - machdep->machspec->modules_vaddr = first_vmalloc_address();
> machdep->machspec->modules_end = machdep->kvbase - 1;
> + vaddr = first_vmalloc_address();
> + if (vaddr > machdep->machspec->modules_end)
> + machdep->machspec->modules_vaddr = DEFAULT_MODULES_VADDR;
> + else
> + machdep->machspec->modules_vaddr = vaddr;
>
> if (init_unwind_tables()) {
> if (CRASHDEBUG(1))
> @@ -323,6 +329,7 @@ arm_init(int when)
> }
> break;
> }
> + }
> }
>
> void
> @@ -614,7 +621,7 @@ static int
> arm_is_module_addr(ulong vaddr)
> {
> ulong modules_start;
> - ulong modules_end = machdep->kvbase - 1;
> + ulong modules_end = machdep->machspec->modules_end;
>
> if (!MODULES_VADDR) {
> /*
> @@ -622,7 +629,7 @@ arm_is_module_addr(ulong vaddr)
> * called, we use defaults here which is 16MB below kernel start
> * address.
> */
> - modules_start = machdep->kvbase - 16 * 1024 * 1024;
> + modules_start = DEFAULT_MODULES_VADDR;
> } else {
> modules_start = MODULES_VADDR;
> }
> diff --git a/defs.h b/defs.h
> index caa87c0..e775e24 100755
> --- a/defs.h
> +++ b/defs.h
> @@ -2438,6 +2438,7 @@ struct load_module {
>
> #define IS_VMALLOC_ADDR(X) arm_is_vmalloc_addr((ulong)(X))
>
> +#define DEFAULT_MODULES_VADDR (machdep->kvbase - 16 * 1024 * 1024)
> #define MODULES_VADDR (machdep->machspec->modules_vaddr)
> #define MODULES_END (machdep->machspec->modules_end)
> #define VMALLOC_START (machdep->machspec->vmalloc_start_addr)
>
> --
> Crash-utility mailing list
> Crash-utility(a)redhat.com
>
https://www.redhat.com/mailman/listinfo/crash-utility
>
--
Crash-utility mailing list
Crash-utility(a)redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility