Date: Thu, 05 Oct 2000 11:00:46 +0900 From: Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> To: freebsd-bugs@freebsd.org Cc: ohki@gssm.otsuka.tsukuba.ac.jp Subject: if_wi.c of FreeBSD Message-ID: <200010050200.LAA02927@smr00.gssm.otsuka.tsukuba.ac.jp>
next in thread | raw e-mail | index | archive | help
Hi,
I found a small problem with if_wi.c in FreeBSD(3.3-RELEASE and later,
probably 4.1.1 too)
After using WaveLan PCMCIA card,
other PCMCIA cards do not work properly.
(they work for a while but become inoperable sometime.)
This problem is due to the timeout route in if_wi.c,
wi_inquire(). I'm afraid that untimeout() should
be call for it when a WaveLan PCMCIA card is just unloaded,
like following context diff (based on FreeBSD 3.3-RELEASE).
--- if_wi.c-ORIG Mon Aug 30 01:07:24 1999
+++ if_wi.c Wed Oct 4 17:08:06 2000
@@ -246,6 +246,8 @@
sc->wi_gone = 1;
printf("wi%d: unloaded\n", sc_p->isahd.id_unit);
+ untimeout(wi_inquire, sc, sc->wi_stat_ch); /* XXX */
+
return;
}
@@ -509,6 +511,8 @@
struct ifnet *ifp;
sc = xsc;
+ if (sc->wi_gone) return; /* XXX paranoia ? */
+
ifp = &sc->arpcom.ac_if;
sc->wi_stat_ch = timeout(wi_inquire, sc, hz * 60);
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200010050200.LAA02927>
