diff options
| author | jmmv <jmmv@NetBSD.org> | 2008-01-20 11:28:12 +0000 |
|---|---|---|
| committer | jmmv <jmmv@NetBSD.org> | 2008-01-20 11:28:12 +0000 |
| commit | 7660ca07d84d211e42fd88e60f406829058a6912 (patch) | |
| tree | d67e06dfa9cf0ca31a3b3db7081688ac4fa9e6b8 /sys/dev | |
| parent | bfcf8df19c0ab5999fc14294111ed5024702fd7e (diff) | |
Now that the driver goes through the mii_ifmedia_change indirection
instead of directly calling the pcn_79c970_mediachange function, we
must initialize sc->sc_mii.mii_ifp so that this last function is
passed a valid parameter.
Fixes a panic in pcn_79c970_mediachange that arose immediately when
trying to use this interface due to a NULL pointer dereference.
Hi dyoung@!
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/pci/if_pcn.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/pci/if_pcn.c b/sys/dev/pci/if_pcn.c index 5b6d2e48af1..904fa315702 100644 --- a/sys/dev/pci/if_pcn.c +++ b/sys/dev/pci/if_pcn.c @@ -1,4 +1,4 @@ -/* $NetBSD: if_pcn.c,v 1.42 2008/01/19 22:10:18 dyoung Exp $ */ +/* $NetBSD: if_pcn.c,v 1.43 2008/01/20 11:28:12 jmmv Exp $ */ /* * Copyright (c) 2001 Wasabi Systems, Inc. @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_pcn.c,v 1.42 2008/01/19 22:10:18 dyoung Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_pcn.c,v 1.43 2008/01/20 11:28:12 jmmv Exp $"); #include "bpfilter.h" #include "rnd.h" @@ -2024,8 +2024,11 @@ pcn_set_filter(struct pcn_softc *sc) static void pcn_79c970_mediainit(struct pcn_softc *sc) { + struct ifnet *ifp = &sc->sc_ethercom.ec_if; const char *sep = ""; + sc->sc_mii.mii_ifp = ifp; + ifmedia_init(&sc->sc_mii.mii_media, IFM_IMASK, pcn_79c970_mediachange, pcn_79c970_mediastatus); |
