--- a/sys/netbt/bt_proto.c +++ b/sys/netbt/bt_proto.c @@ -160,7 +160,15 @@ .dom_name = "bluetooth", .dom_init = netbt_init, .dom_externalize = NULL, - .dom_dispose = netbt_dispose, + /* + * DragonFly's dom_dispose is the per-socket PR_RIGHTS mbuf + * disposal hook (sys/kern/uipc_socket.c:1611,1987), invoked on + * every sorflush / receive-cleanup of a PR_RIGHTS socket -- it is + * NOT a domain-teardown hook. netbt_dispose() destroys the + * global vm_zones (and would re-destroy them on every flush); + * no netbt protosw sets PR_RIGHTS, so the hook must stay NULL. + */ + .dom_dispose = NULL, .dom_protosw = btsw, .dom_protoswNPROTOSW = &btsw[NELEM(btsw)], .dom_next = SLIST_ENTRY_INITIALIZER,