Changeset View
Changeset View
Standalone View
Standalone View
sys/netinet/tcp_lro.c
Show First 20 Lines • Show All 1,304 Lines • ▼ Show 20 Lines | #endif | ||||
counter_u64_add(tcp_inp_lro_locks_taken, 1); | counter_u64_add(tcp_inp_lro_locks_taken, 1); | ||||
/* Get TCP control structure. */ | /* Get TCP control structure. */ | ||||
tp = intotcpcb(inp); | tp = intotcpcb(inp); | ||||
/* Check if the inp is dead, Jim. */ | /* Check if the inp is dead, Jim. */ | ||||
if (tp == NULL || | if (tp == NULL || | ||||
(inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT)) || | (inp->inp_flags & (INP_DROPPED | INP_TIMEWAIT))) { | ||||
(inp->inp_flags2 & INP_FREED)) { | |||||
INP_WUNLOCK(inp); | INP_WUNLOCK(inp); | ||||
return (TCP_LRO_CANNOT); | return (TCP_LRO_CANNOT); | ||||
} | } | ||||
if ((inp->inp_irq_cpu_set == 0) && (lc->lro_cpu_is_set == 1)) { | if ((inp->inp_irq_cpu_set == 0) && (lc->lro_cpu_is_set == 1)) { | ||||
inp->inp_irq_cpu = lc->lro_last_cpu; | inp->inp_irq_cpu = lc->lro_last_cpu; | ||||
inp->inp_irq_cpu_set = 1; | inp->inp_irq_cpu_set = 1; | ||||
} | } | ||||
/* Check if the transport doesn't support the needed optimizations. */ | /* Check if the transport doesn't support the needed optimizations. */ | ||||
▲ Show 20 Lines • Show All 642 Lines • Show Last 20 Lines |