> 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);