From owner-freebsd-current Tue Nov 30 14:39:44 1999 Delivered-To: freebsd-current@freebsd.org Received: from cheddar.netmonger.net (cheddar.netmonger.net [209.54.21.140]) by hub.freebsd.org (Postfix) with ESMTP id ED56A14C99; Tue, 30 Nov 1999 14:39:41 -0800 (PST) (envelope-from chris@cheddar.netmonger.net) Received: (from chris@localhost) by cheddar.netmonger.net (8.8.8/8.8.8) id RAA23235; Tue, 30 Nov 1999 17:39:20 -0500 (EST) Message-ID: <19991130173920.A22943@netmonger.net> Date: Tue, 30 Nov 1999 17:39:20 -0500 From: Christopher Masto To: Warner Losh Cc: Nick Hibma , Mike Smith , FreeBSD CURRENT Mailing List Subject: Re: PCCARD eject freeze (was Re: your mail) References: <19991130165407.A467@netmonger.net> <19991130160829.A13848@netmonger.net> <199911301740.JAA02860@mass.cdrom.com> <19991130160829.A13848@netmonger.net> <199911302112.OAA05264@harmony.village.org> <19991130165407.A467@netmonger.net> <199911302159.OAA05508@harmony.village.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.91.1i In-Reply-To: <199911302159.OAA05508@harmony.village.org>; from Warner Losh on Tue, Nov 30, 1999 at 02:59:10PM -0700 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Tue, Nov 30, 1999 at 02:59:10PM -0700, Warner Losh wrote: > In message <19991130165407.A467@netmonger.net> Christopher Masto writes: > : I found that the only message printed was "ready to power off". > > bingo. looks like we're not deleting the child. Try replacing that > for loop with something like: > > pccarddev = devclass_get_device(pccard_devclass, slt->slot); > device_get_children(pccarddev, &kids, &nkids) > for (i = 0; i < nkids; i++) > device_delete_child(pccarddev, kid[0]); > > It isn't quite right, but if it works then I know the right fix. Hey, we're getting somewhere. It works, in that it stops the panic. I get the "ed0: unloaded" message, and the machine doesn't panic, but there are still some problems. It seems that device_delete_child is failing (I forgot to print the return code, but it is not zero), and reinserting the card results in "ed0 already exists, using next available unit number", and then the dreaded "driver allocation failed" (presumably the resources have not been freed). Putting in a different kind of card ends up with two children, so it seems that the only part of the delete actually happens. -- Christopher Masto Senior Network Monkey NetMonger Communications chris@netmonger.net info@netmonger.net http://www.netmonger.net Free yourself, free your machine, free the daemon -- http://www.freebsd.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message