void vnic_dev_fini(void) { ASSERT(vnic_count == 0); rw_destroy(&vnic_lock); mod_hash_destroy_idhash(vnic_hash); kmem_cache_destroy(vnic_cache); }
static int drv_fini(void) { int err; boolean_t exist = B_FALSE; rw_enter(&dld_ap_hash_lock, RW_READER); mod_hash_walk(dld_ap_hashp, drv_ap_exist, &exist); rw_exit(&dld_ap_hash_lock); if (exist) return (EBUSY); if ((err = dld_str_fini()) != 0) return (err); drv_secobj_fini(); mod_hash_destroy_idhash(dld_ap_hashp); rw_destroy(&dld_ap_hash_lock); return (0); }