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

Hans Petter Selasky hselasky at c2i.net
Mon Aug 13 19:46:54 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 don't need to pollute device_if.m. Would device_steal_softc() be OK, to say 
that we want newbus to allocate the softc, but not free it?

Thanks for your comments.

--HPS


More information about the svn-src-head mailing list