Date: Thu, 2 Mar 2000 11:10:55 +1100 (EST) From: Bruce Evans <bde@zeta.org.au> To: Doug Rabson <dfr@nlsystems.com> Cc: Benjamin Greenwald <beng@lcs.mit.edu>, freebsd-current@FreeBSD.ORG, dfr@FreeBSD.ORG, yokota@FreeBSD.ORG Subject: Re: panic: free: multiple frees Message-ID: <Pine.BSF.4.21.0003021042170.628-100000@alphplex.bde.org> In-Reply-To: <Pine.BSF.4.21.0003012327240.8714-100000@salmon.nlsystems.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 1 Mar 2000, Doug Rabson wrote: > I think it was a problem with psm.c which Peter has committed a fix for > already. It bogusly freed the softc (sio.c does too but I doubt if it > would happen in normal usage). The free in sioclose() happens in normal usage after a pccard goes away. Managing softc's outside the driver is the main bogon here in IMHO. sioclose() needs to free the softc and remove it from any external tables atomically with other closedowns. It uses spltty() to prevent races. This will be fixed by using an internal table for com_addr() again. device_set_driver() has unnecessary races. It frees the softc before clearing the pointer to it. Interrupt handlers shouldn't call it, but some do. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0003021042170.628-100000>