diff options
-rw-r--r-- | include/linux/tcp.h | 4 | ||||
-rw-r--r-- | net/ipv4/tcp_minisocks.c | 6 |
2 files changed, 4 insertions, 6 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 29d3089038ab..415193e171e4 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h | |||
@@ -242,6 +242,8 @@ struct tcp_sock { | |||
242 | * See RFC793 and RFC1122. The RFC writes these in capitals. | 242 | * See RFC793 and RFC1122. The RFC writes these in capitals. |
243 | */ | 243 | */ |
244 | u32 rcv_nxt; /* What we want to receive next */ | 244 | u32 rcv_nxt; /* What we want to receive next */ |
245 | u32 copied_seq; /* Head of yet unread data */ | ||
246 | u32 rcv_wup; /* rcv_nxt on last window update sent */ | ||
245 | u32 snd_nxt; /* Next sequence we send */ | 247 | u32 snd_nxt; /* Next sequence we send */ |
246 | 248 | ||
247 | u32 snd_una; /* First byte we want an ack for */ | 249 | u32 snd_una; /* First byte we want an ack for */ |
@@ -307,10 +309,8 @@ struct tcp_sock { | |||
307 | struct sk_buff_head out_of_order_queue; /* Out of order segments go here */ | 309 | struct sk_buff_head out_of_order_queue; /* Out of order segments go here */ |
308 | 310 | ||
309 | u32 rcv_wnd; /* Current receiver window */ | 311 | u32 rcv_wnd; /* Current receiver window */ |
310 | u32 rcv_wup; /* rcv_nxt on last window update sent */ | ||
311 | u32 write_seq; /* Tail(+1) of data held in tcp send buffer */ | 312 | u32 write_seq; /* Tail(+1) of data held in tcp send buffer */ |
312 | u32 pushed_seq; /* Last pushed seq, required to talk to windows */ | 313 | u32 pushed_seq; /* Last pushed seq, required to talk to windows */ |
313 | u32 copied_seq; /* Head of yet unread data */ | ||
314 | 314 | ||
315 | /* SACKs data */ | 315 | /* SACKs data */ |
316 | struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */ | 316 | struct tcp_sack_block duplicate_sack[1]; /* D-SACK block */ |
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c index 6b5c64f3c925..706932726a11 100644 --- a/net/ipv4/tcp_minisocks.c +++ b/net/ipv4/tcp_minisocks.c | |||
@@ -387,8 +387,8 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req, | |||
387 | /* Now setup tcp_sock */ | 387 | /* Now setup tcp_sock */ |
388 | newtp = tcp_sk(newsk); | 388 | newtp = tcp_sk(newsk); |
389 | newtp->pred_flags = 0; | 389 | newtp->pred_flags = 0; |
390 | newtp->rcv_nxt = treq->rcv_isn + 1; | 390 | newtp->rcv_wup = newtp->copied_seq = newtp->rcv_nxt = treq->rcv_isn + 1; |
391 | newtp->snd_nxt = newtp->snd_una = newtp->snd_sml = treq->snt_isn + 1; | 391 | newtp->snd_sml = newtp->snd_una = newtp->snd_nxt = treq->snt_isn + 1; |
392 | 392 | ||
393 | tcp_prequeue_init(newtp); | 393 | tcp_prequeue_init(newtp); |
394 | 394 | ||
@@ -422,10 +422,8 @@ struct sock *tcp_create_openreq_child(struct sock *sk, struct request_sock *req, | |||
422 | tcp_set_ca_state(newsk, TCP_CA_Open); | 422 | tcp_set_ca_state(newsk, TCP_CA_Open); |
423 | tcp_init_xmit_timers(newsk); | 423 | tcp_init_xmit_timers(newsk); |
424 | skb_queue_head_init(&newtp->out_of_order_queue); | 424 | skb_queue_head_init(&newtp->out_of_order_queue); |
425 | newtp->rcv_wup = treq->rcv_isn + 1; | ||
426 | newtp->write_seq = treq->snt_isn + 1; | 425 | newtp->write_seq = treq->snt_isn + 1; |
427 | newtp->pushed_seq = newtp->write_seq; | 426 | newtp->pushed_seq = newtp->write_seq; |
428 | newtp->copied_seq = treq->rcv_isn + 1; | ||
429 | 427 | ||
430 | newtp->rx_opt.saw_tstamp = 0; | 428 | newtp->rx_opt.saw_tstamp = 0; |
431 | 429 | ||