Is there some implicit locking of device methods?

Bartosz Fabianowski freebsd at chillt.de
Wed Apr 27 15:22:46 UTC 2011


> Err, if you use cdevpriv you shouldn't even have a d_close method.  All your
> d_close logic should be in the cdevpriv destructor

I see. There is no documentation for any of this, so I just implemented 
it in the way I *thought* it should work:

.d_close = drv_close,

int drv_close(...) {
   devfs_clear_cdevpriv();
}

static void cdevpriv_dtr(void *data) {
   free(data, M_USBDEV);
}

If I understand you correctly, I can leave out the drv_close() method. 
When close() is called, devfs_clear_cdevpriv() will be executed 
implcitly for me and my dstructor will run - right?

- Bartosz


More information about the freebsd-hackers mailing list