Current-Users archive

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

Re: wm0 Driver



> Now, each of these machines has at least 1 Intel PRO/1000 multimode
> fiber network card.  Guess what?  When I try to enable one of them, I
> get 'fatal page fault in supervisor mode'. Additional statements are
> 'trap type 6 code 0 eip c05ff9bb cs 8 eflags 10286 cr 2 0 ilevel 6'
> 'kernel: supervisor trap page fault, code=0'
> 'Stopped in pid 1368.1 (ifconfig) at netbsd:wm_tbi_mediachange+0xb 
> movl 0(%eax),%esi'

Disassembly of the first part of wm_tbi_mediachange follows(0xb
is 11):

(gdb) x/20i wm_tbi_mediachange
0x6c0 <wm_tbi_mediachange>:     push   %ebp
0x6c1 <wm_tbi_mediachange+1>:   mov    %esp,%ebp
0x6c3 <wm_tbi_mediachange+3>:   push   %esi
0x6c4 <wm_tbi_mediachange+4>:   push   %ebx
0x6c5 <wm_tbi_mediachange+5>:   sub    $0x10,%esp
0x6c8 <wm_tbi_mediachange+8>:   mov    0x8(%ebp),%eax
0x6cb <wm_tbi_mediachange+11>:  mov    (%eax),%esi
0x6cd <wm_tbi_mediachange+13>:  mov    0x26c(%esi),%ebx

This is early in wm_tbi_mediachange(), which starts with:

static int 
wm_tbi_mediachange(struct ifnet *ifp)
{        
        struct wm_softc *sc = ifp->if_softc;
        struct ifmedia_entry *ife = sc->sc_mii.mii_media.ifm_cur;
        uint32_t status;
        int i;

I'm guessing ifp is null.  How that can be I don't know, though.
You could try setting ddb.commandonenter to "trace" using sysctl,
perhaps, and thereby gather some more info (if you can't follow
up on the serial console idea).

You could also try defining IFMEDIA_DEBUG and setting
ifmedia_debug to 1 in sys/net/if_media.c, I suspect
wm_tbi_mediachange() is being called from there.

Also, are you able to do "ifconfig -m wm<n>" for these cards, and
does the list you get from that include any optical media types?

Regards,

- Håvard


Home | Main Index | Thread Index | Old Index