Date: Mon, 13 Aug 2012 21:43:42 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: John Baldwin <jhb@freebsd.org> Cc: "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org> Subject: Re: svn commit: r239178 - in head/sys: kern sys Message-ID: <201208132143.42298.hselasky@c2i.net> In-Reply-To: <201208130949.07399.jhb@freebsd.org> References: <201208101502.q7AF2ofC046316@svn.freebsd.org> <201208130949.07399.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201208132143.42298.hselasky>