> Date: Sun, 1 Mar 2015 16:50:27 -0330
> From: Michael <[email protected]>
>
> uvm_fault(0xd6508004, 0x0, 0, 1) -> e
> kernel: page fault trap, code=0
> Stopped at      0:uvm_fault(0xd6508004, 0x0, 0, 1) -> e
>       kernel: page fault trap, code=0
> Stopped at      db_read_bytes+0x17:     movzbl  0(%esi,%ecx,1),%eax

I think this is how a null-pointer call shows up in ddb.

Does the diff below help?

Index: bwi.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/bwi.c,v
retrieving revision 1.116
diff -u -p -r1.116 bwi.c
--- bwi.c       10 Feb 2015 23:25:46 -0000      1.116
+++ bwi.c       4 Mar 2015 14:03:23 -0000
@@ -1234,7 +1234,7 @@ bwi_mac_init(struct bwi_mac *mac)
        /*
         * Initialize TX stats if the current MAC uses that
         */
-       if (mac->mac_flags & BWI_MAC_F_HAS_TXSTATS) {
+       if (mac->mac_flags & BWI_MAC_F_HAS_TXSTATS && sc->sc_init_txstats) {
                error = sc->sc_init_txstats(sc);
                if (error) {
                        printf("%s: can't initialize TX stats ring\n",
@@ -2368,7 +2368,7 @@ bwi_mac_shutdown(struct bwi_mac *mac)
        struct bwi_softc *sc = mac->mac_sc;
        int i;
 
-       if (mac->mac_flags & BWI_MAC_F_HAS_TXSTATS)
+       if (mac->mac_flags & BWI_MAC_F_HAS_TXSTATS && sc->sc_free_txstats)
                sc->sc_free_txstats(sc);
 
        sc->sc_free_rx_ring(sc);

Reply via email to