Changeset View
Changeset View
Standalone View
Standalone View
netinet/tcp_stacks/fastpath.c
Context not available. | |||||
err = register_tcp_functions(&__tcp_fastslow, M_WAITOK); | err = register_tcp_functions(&__tcp_fastslow, M_WAITOK); | ||||
if (err) { | if (err) { | ||||
printf("Failed to register fastslow module -- err:%d\n", err); | printf("Failed to register fastslow module -- err:%d\n", err); | ||||
deregister_tcp_functions(&__tcp_fastack); | deregister_tcp_functions(&__tcp_fastack, false, true); | ||||
return(err); | return(err); | ||||
} | } | ||||
break; | break; | ||||
Context not available. | |||||
if ((__tcp_fastslow.tfb_refcnt) ||( __tcp_fastack.tfb_refcnt)) { | if ((__tcp_fastslow.tfb_refcnt) ||( __tcp_fastack.tfb_refcnt)) { | ||||
return(EBUSY); | return(EBUSY); | ||||
} | } | ||||
err = deregister_tcp_functions(&__tcp_fastack, true, false); | |||||
err = deregister_tcp_functions(&__tcp_fastslow, true, false); | |||||
break; | break; | ||||
case MOD_UNLOAD: | case MOD_UNLOAD: | ||||
err = deregister_tcp_functions(&__tcp_fastack); | err = deregister_tcp_functions(&__tcp_fastack, false, true); | ||||
err = deregister_tcp_functions(&__tcp_fastslow, false, true); | |||||
if (err == EBUSY) | if (err == EBUSY) | ||||
break; | break; | ||||
err = deregister_tcp_functions(&__tcp_fastslow); | |||||
if (err == EBUSY) | |||||
break; | |||||
err = 0; | err = 0; | ||||
break; | break; | ||||
default: | default: | ||||
Context not available. |