svn commit: r239178 - in head/sys: kern sys

John Baldwin jhb at freebsd.org
Mon Aug 13 17:47:13 UTC 2012


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.

-- 
John Baldwin


More information about the svn-src-all mailing list