From owner-cvs-all@FreeBSD.ORG Wed Oct 26 18:25:30 2005 Return-Path: X-Original-To: cvs-all@freebsd.org Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C31FB16A41F; Wed, 26 Oct 2005 18:25:30 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from mv.twc.weather.com (mv.twc.weather.com [65.212.71.225]) by mx1.FreeBSD.org (Postfix) with ESMTP id 228D143D48; Wed, 26 Oct 2005 18:25:30 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from [10.50.41.234] (Not Verified[10.50.41.234]) by mv.twc.weather.com with NetIQ MailMarshal (v6, 0, 3, 8) id ; Wed, 26 Oct 2005 14:42:12 -0400 From: John Baldwin To: Maksim Yevmenkin Date: Wed, 26 Oct 2005 14:23:47 -0400 User-Agent: KMail/1.8.2 References: <200510260617.j9Q6HRqh082376@repoman.freebsd.org> <200510261258.51651.jhb@freebsd.org> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200510261423.49602.jhb@freebsd.org> Cc: cvs-src@freebsd.org, src-committers@freebsd.org, Ruslan Ermilov , cvs-all@freebsd.org Subject: Re: cvs commit: src/sys/netgraph/bluetooth/drivers/bt3c ng_bt3c_pccard.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 26 Oct 2005 18:25:31 -0000 On Wednesday 26 October 2005 01:24 pm, Maksim Yevmenkin wrote: > On 10/26/05, John Baldwin wrote: > > On Wednesday 26 October 2005 12:33 pm, Maksim Yevmenkin wrote: > > > John, > > > > > > [...] > > > > > > > Sorry about that, will be fixing it more cleanly. BTW, does anyone > > > > know why this driver allocates its softc manualn in its attach > > > > routine? > > > > > > ng_bt3c(4) is a netgraph device driver. there could be failures in > > > both device part (i/o port, interrupts etc.) as well as in netgraph > > > part (could not create node). so decided to do it this way. right now > > > i can not recall any other reason :) > > > > Even if netgraph fails then new-bus will still free it for you when > > attach returns ENXIO. All you have to do is set the size in your > > driver_t and axe the malloc, free, and device_set_softc calls and you > > should be done. > > would something like this do? or am i missing something? please note: > i have not tested the patch. > > cvs diff: Diffing . > Index: ng_bt3c_pccard.c > =================================================================== > RCS file: > /home/ncvs/src/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c,v > retrieving revision 1.17 > diff -u -r1.17 ng_bt3c_pccard.c > --- ng_bt3c_pccard.c 26 Oct 2005 15:52:16 -0000 1.17 > +++ ng_bt3c_pccard.c 26 Oct 2005 17:23:02 -0000 > @@ -612,11 +612,7 @@ > static int > bt3c_pccard_attach(device_t dev) > { > - bt3c_softc_p sc = NULL; > - > - sc = (bt3c_softc_p) malloc(sizeof(*sc), M_BT3C, M_NOWAIT|M_ZERO); > - if (sc == NULL) > - return (ENOMEM); > + bt3c_softc_p sc = (bt3c_softc_p) device_get_softc(dev); > > /* Allocate I/O ports */ > sc->iobase_rid = 0; > @@ -677,7 +673,6 @@ > sc->want = 1; > > NG_NODE_SET_PRIVATE(sc->node, sc); > - device_set_softc(dev, sc); > > return (0); > bad: > @@ -705,8 +700,6 @@ > sc->iobase_rid = 0; > } > > - free(sc, M_BT3C); > - > return (ENXIO); > } /* bt3c_pccacd_attach */ > > @@ -1197,7 +1190,7 @@ > static driver_t bt3c_pccard_driver = { > NG_BT3C_NODE_TYPE, > bt3c_pccard_methods, > - 0 > + sizeof(bt3c_softc_t) > }; > > static devclass_t bt3c_devclass; > > == > > max Yep. Also remove the free() in detach() as well. -- John Baldwin <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org