Changeset View
Changeset View
Standalone View
Standalone View
head/sys/netinet/toecore.c
Show First 20 Lines • Show All 503 Lines • ▼ Show 20 Lines | if (err == EAGAIN) { | ||||
* TCP's pru_connect would have done if the connection | * TCP's pru_connect would have done if the connection | ||||
* wasn't offloaded. | * wasn't offloaded. | ||||
*/ | */ | ||||
tod->tod_pcb_detach(tod, tp); | tod->tod_pcb_detach(tod, tp); | ||||
KASSERT(!(tp->t_flags & TF_TOE), | KASSERT(!(tp->t_flags & TF_TOE), | ||||
("%s: tp %p still offloaded.", __func__, tp)); | ("%s: tp %p still offloaded.", __func__, tp)); | ||||
tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); | tcp_timer_activate(tp, TT_KEEP, TP_KEEPINIT(tp)); | ||||
(void) tcp_output(tp); | (void) tp->t_fb->tfb_tcp_output(tp); | ||||
} else { | } else { | ||||
INP_INFO_RLOCK_ASSERT(&V_tcbinfo); | INP_INFO_RLOCK_ASSERT(&V_tcbinfo); | ||||
tp = tcp_drop(tp, err); | tp = tcp_drop(tp, err); | ||||
if (tp == NULL) | if (tp == NULL) | ||||
INP_WLOCK(inp); /* re-acquire */ | INP_WLOCK(inp); /* re-acquire */ | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 64 Lines • Show Last 20 Lines |