Hi Dave

 

I found a problem in arm.c that arm_get_crash_notes() is called too early. This has never been a problem until now.

 

arm_get_crash_notes() in arm.c

calls readmem(, KVADDR, )

which calls kvtop()

which calls machdep->kvtop that is arm_kvtop

    which uses vt->vmalloc_start

    vt->vmalloc_start is initialized in vm_init

 

From main_loop:

      machdep_init(POST_GDB);

      vm_init();

      machdep_init(POST_VM);

 

arm_get_crash_notes() is currently called in the POST_GDB section of machdep_init, but should be moved to the POST_VM section. I put the comment and the code just before:

 

      if (init_unwind_tables()) {

 

and then it works fine. Without this fix the crash registers might be read from the wrong physical address.

 

Jan

 

Jan Karlsson

Senior Software Engineer

MIB

 

Sony Mobile Communications

Tel: +46703062174

sonymobile.com

 

SONY make.believe