----- 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
> > [email protected]
> > https://www.redhat.com/mailman/listinfo/crash-utility
> > 
> 
> --
> Crash-utility mailing list
> [email protected]
> https://www.redhat.com/mailman/listinfo/crash-utility
> 

--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to