summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorjmmv <jmmv@NetBSD.org>2008-01-20 11:28:12 +0000
committerjmmv <jmmv@NetBSD.org>2008-01-20 11:28:12 +0000
commit7660ca07d84d211e42fd88e60f406829058a6912 (patch)
treed67e06dfa9cf0ca31a3b3db7081688ac4fa9e6b8 /sys/dev
parentbfcf8df19c0ab5999fc14294111ed5024702fd7e (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.c7
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);