NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-i386/46884: Compaq Armada E500 not booting 6.0 RC1



The following reply was made to PR port-i386/46884; it has been noted by GNATS.

From: Robert Doerfler <rodo%bloerp.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: port-i386/46884: Compaq Armada E500 not booting 6.0 RC1
Date: Thu, 6 Sep 2012 06:33:16 +0200

 * matthew green <mrg%eterna.com.au@localhost> [120905 21:45]:
 > The following reply was made to PR port-i386/46884; it has been noted by 
 > GNATS.
 > 
 > From: matthew green <mrg%eterna.com.au@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc: port-i386-maintainer%netbsd.org@localhost, 
 > gnats-admin%netbsd.org@localhost,
 >     netbsd-bugs%netbsd.org@localhost, rodo%bloerp.de@localhost
 > Subject: re: port-i386/46884: Compaq Armada E500 not booting 6.0 RC1
 > Date: Thu, 06 Sep 2012 05:42:00 +1000
 > 
 >  OK, so these show that:
 >  
 >      config_cfdriver_lookup+0x1e
 >      config_cfattach_lookup
 >      config_match
 >      config_search_loc
 >      config_found_sm_loc
 >      config_found
 >      audio_attach_mi
 >      esm_attach
 >  
 >  is the stack trace.  and this is the code and asm:
 >  
 >  struct cfdriver *
 >  config_cfdriver_lookup(const char *name)
 >  {
 >          struct cfdriver *cd;
 >  
 >          LIST_FOREACH(cd, &allcfdrivers, cd_list) {
 >                  if (STREQ(cd->cd_name, name))
 >                          return cd;
 >          }
 >  
 >          return NULL;
 >  }
 >  
 >  Dump of assembler code for function config_cfdriver_lookup:
 >     0xc077fbf5 <+0>:     push   %ebp
 >     0xc077fbf6 <+1>:     mov    %esp,%ebp
 >     0xc077fbf8 <+3>:     push   %edi
 >     0xc077fbf9 <+4>:     push   %esi
 >     0xc077fbfa <+5>:     push   %ebx
 >     0xc077fbfb <+6>:     sub    $0x1c,%esp
 >     0xc077fbfe <+9>:     mov    0x8(%ebp),%edi
 >     0xc077fc01 <+12>:    mov    0xc0c3ecd0,%ebx
 >     0xc077fc07 <+18>:    test   %ebx,%ebx
 >     0xc077fc09 <+20>:    je     0xc077fc2d <config_cfdriver_lookup+56>
 >     0xc077fc0b <+22>:    movzbl (%edi),%esi
 >     0xc077fc0e <+25>:    mov    0x10(%ebx),%eax
 >     0xc077fc11 <+28>:    mov    %esi,%edx
 >  >> 0xc077fc13 <+30>:    cmp    %dl,(%eax)                                
 >     0xc077fc15 <+32>:    jne    0xc077fc27 <config_cfdriver_lookup+50>
 >     0xc077fc17 <+34>:    mov    %edi,0x4(%esp)
 >     0xc077fc1b <+38>:    mov    %eax,(%esp)
 >     0xc077fc1e <+41>:    call   0xc0906af0 <strcmp>
 >     0xc077fc23 <+46>:    test   %eax,%eax
 >     0xc077fc25 <+48>:    je     0xc077fc2d <config_cfdriver_lookup+56>
 >     0xc077fc27 <+50>:    mov    (%ebx),%ebx
 >     0xc077fc29 <+52>:    test   %ebx,%ebx
 >     0xc077fc2b <+54>:    jne    0xc077fc0e <config_cfdriver_lookup+25>
 >     0xc077fc2d <+56>:    mov    %ebx,%eax
 >     0xc077fc2f <+58>:    add    $0x1c,%esp
 >     0xc077fc32 <+61>:    pop    %ebx
 >     0xc077fc33 <+62>:    pop    %esi
 >     0xc077fc34 <+63>:    pop    %edi
 >     0xc077fc35 <+64>:    pop    %ebp
 >     0xc077fc36 <+65>:    ret
 >  
 >  >> marks the faulting instruction.  so something is wrong with 
 >  the allcfdrivers list here, i think.  robo, can you run these
 >  command from the db> prompt:
   
 
 Sure, here they are:
 
 >  db> p $eax
 
 4b26
   
 
 >  db> x 0xc0bc2bfd
 
 netbsd:gcscide_cd+0x1d: e0c09082
 
   
 >  the STREQ() macro checks that the first char matches first, before
 >  calling strcmp() directly (side comment: this seems like a strange
 >  optimisation for autoconf code.)
 >  
 >  i'm not sure what is happening here, but the allcfdrivers list
 >  appears broken some how.  or perhaps a cfdriver entry.  i don't
 >  know autoconf code very well.
 


Home | Main Index | Thread Index | Old Index