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 [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message