From owner-svn-src-all@FreeBSD.ORG Mon Aug 13 19:43:09 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D8FB01065673; Mon, 13 Aug 2012 19:43:09 +0000 (UTC) (envelope-from hselasky@c2i.net) Received: from swip.net (mailfe04.c2i.net [212.247.154.98]) by mx1.freebsd.org (Postfix) with ESMTP id C697A8FC14; Mon, 13 Aug 2012 19:43:08 +0000 (UTC) X-T2-Spam-Status: No, hits=-1.0 required=5.0 tests=ALL_TRUSTED Received: from [176.74.212.201] (account mc467741@c2i.net HELO laptop015.hselasky.homeunix.org) by mailfe04.swip.net (CommuniGate Pro SMTP 5.4.4) with ESMTPA id 306525598; Mon, 13 Aug 2012 21:43:07 +0200 From: Hans Petter Selasky To: John Baldwin Date: Mon, 13 Aug 2012 21:43:42 +0200 User-Agent: KMail/1.13.7 (FreeBSD/9.1-PRERELEASE; KDE/4.8.4; amd64; ; ) References: <201208101502.q7AF2ofC046316@svn.freebsd.org> <201208130949.07399.jhb@freebsd.org> In-Reply-To: <201208130949.07399.jhb@freebsd.org> X-Face: 'mmZ:T{)),Oru^0c+/}w'`gU1$ubmG?lp!=R4Wy\ELYo2)@'UZ24N@ =?windows-1252?q?d2+AyewRX=7DmAm=3BYp=0A=09=7CU=5B?=@, _z/([?1bCfM{_"B<.J>mICJCHAzzGHI{y7{%JVz%R~yJHIji`y> =?windows-1252?q?Y=7Dk1C4TfysrsUI=0A=09-=25GU9V5=5DiUZF=26nRn9mJ=27=3F=26?=>O MIME-Version: 1.0 Content-Type: Text/Plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Message-Id: <201208132143.42298.hselasky@c2i.net> Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" Subject: Re: svn commit: r239178 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Aug 2012 19:43:10 -0000 On Monday 13 August 2012 15:49:07 John Baldwin wrote: > On Friday, August 10, 2012 11:02:50 am Hans Petter Selasky wrote: > > Author: hselasky > > Date: Fri Aug 10 15:02:49 2012 > > New Revision: 239178 > > URL: http://svn.freebsd.org/changeset/base/239178 > > > > Log: > > Add new device method to free the automatically > > allocated softc structure which is returned by > > device_get_softc(). This method can be used to > > easily implement softc refcounting. This can be > > desirable when the softc has memory references > > which are controlled by userspace handles for > > example. > > Why do you need a new method? If you want to manage your own softc, you > are free to do so by using a size of 0 in your driver_t. You can then use > device_set_softc() to set the softc during your attach routine. New-bus > won't free it during detach leaving you to free it instead. That is what > you should have done here instead of polluting device_if.m. Note that > DF_EXTERNALSOFTC is an internal flag to explicitly handle this case, but > you've now made it possible for a device to try to do special free logic > but haven't made DF_EXTERNALSOFTC visible to that driver. This is why I > think new-bus already let you do what you wanted (via device_set_softc()) > and think you should just do that and back this out. Hi, I know that drivers can manage their own softc's, only that it will add 5-10 more lines of code and error handling to each UCOM client driver, instead of using the .size field which factors all of this out of the driver. If you think this is really a bad idea, then I can revert. It will take some time to revert, because I need to patch a solution into all the USB UCOM clients. --HPS