aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/tcp_minisocks.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
index 75632a925824..9b02af2139d3 100644
--- a/net/ipv4/tcp_minisocks.c
+++ b/net/ipv4/tcp_minisocks.c
@@ -455,7 +455,7 @@ struct sock *tcp_create_openreq_child(const struct sock *sk,
455 455
456 newtp->rcv_wup = newtp->copied_seq = 456 newtp->rcv_wup = newtp->copied_seq =
457 newtp->rcv_nxt = treq->rcv_isn + 1; 457 newtp->rcv_nxt = treq->rcv_isn + 1;
458 newtp->segs_in = 0; 458 newtp->segs_in = 1;
459 459
460 newtp->snd_sml = newtp->snd_una = 460 newtp->snd_sml = newtp->snd_una =
461 newtp->snd_nxt = newtp->snd_up = treq->snt_isn + 1; 461 newtp->snd_nxt = newtp->snd_up = treq->snt_isn + 1;
@@ -815,6 +815,7 @@ int tcp_child_process(struct sock *parent, struct sock *child,
815 int ret = 0; 815 int ret = 0;
816 int state = child->sk_state; 816 int state = child->sk_state;
817 817
818 tcp_sk(child)->segs_in += max_t(u16, 1, skb_shinfo(skb)->gso_segs);
818 if (!sock_owned_by_user(child)) { 819 if (!sock_owned_by_user(child)) {
819 ret = tcp_rcv_state_process(child, skb); 820 ret = tcp_rcv_state_process(child, skb);
820 /* Wakeup parent, send SIGIO */ 821 /* Wakeup parent, send SIGIO */