Date: Tue, 5 Sep 2000 20:51:43 +0200 (CEST) From: Luigi Rizzo <luigi@info.iet.unipi.it> To: Robert Watson <rwatson@FreeBSD.ORG> Cc: Warner Losh <imp@village.org>, Wes Peters <wes@softweyr.com>, Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp>, current@FreeBSD.ORG, net@FreeBSD.ORG Subject: Re: the ifp to a removed pcmcia ethernet card is left in struct ip_moptions and struct ifmultiaddr Message-ID: <200009051851.UAA20917@info.iet.unipi.it> In-Reply-To: <Pine.NEB.3.96L.1000905143626.2846B-100000@fledge.watson.org> from Robert Watson at "Sep 5, 2000 02:38:54 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
> This is all made harder by the fact that struct mbuf has a struct ifnet > pointer in it, so if for any reason there is an outstanding mbuf ... > This has been raised as an issue before, and is a good reason to ifconfig > down the interface, and wait a second or two before ejecting. You could and still, the wait is not errorproof as delays can be larger than a second or two. I suppose the correct way to do things when you delete an interface is to to keep the struct ifnet around (in some list) for further reuse when the card is reinserted. One could argue that dummynet with its delayed scheduling of packets is screwing up things, but i would argue that having pointers to volatile objects without reference counts is not such a great design, and SMP might give the same kind of problems. cheers luigi To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200009051851.UAA20917>