svn commit: r239178 - in head/sys: kern sys
Hans Petter Selasky
hselasky at c2i.net
Mon Aug 13 19:43:10 UTC 2012
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
More information about the svn-src-head
mailing list