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: Paul Goyette <paul%whooppee.com@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: matthew green <mrg%eterna.com.au@localhost>
Subject: re: port-i386/46884: Compaq Armada E500 not booting 6.0 RC1
Date: Sun, 7 May 2017 10:11:22 +0800 (+08)

 > 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.   ...
 
 My understanding of the disassembly shows that the list is being
 traversed with the current entry pointed to by %ebx (see <+50> for
 the code that links to the next list entry).
 
 So, %eax would be the pointer to the name for which we are searching.
 
 So maybe something got corrupted in the new device's cf_data (from
 which config_match() obtains the new driver's name and passes it to
 config_cfattach_lookup()) ?
 
 
 
 +------------------+--------------------------+----------------------------+
 | Paul Goyette     | PGP Key fingerprint:     | E-mail addresses:          |
 | (Retired)        | FA29 0E3B 35AF E8AE 6651 | paul at whooppee dot com   |
 | Kernel Developer | 0786 F758 55DE 53BA 7731 | pgoyette at netbsd dot org |
 +------------------+--------------------------+----------------------------+
 


Home | Main Index | Thread Index | Old Index