Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754981AbaANArU (ORCPT ); Mon, 13 Jan 2014 19:47:20 -0500 Received: from mga11.intel.com ([192.55.52.93]:16934 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754960AbaANArP (ORCPT ); Mon, 13 Jan 2014 19:47:15 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.95,656,1384329600"; d="scan'208";a="464600094" Subject: [PATCH v3 2/4] net_dma: revert 'copied_early' From: Dan Williams To: dmaengine@vger.kernel.org Cc: Hideaki YOSHIFUJI , netdev@vger.kernel.org, Ali Saidi , James Morris , "David S. Miller" , Eric Dumazet , Alexey Kuznetsov , Dave Jones , Neal Cardwell , Patrick McHardy , linux-kernel@vger.kernel.org Date: Mon, 13 Jan 2014 16:47:14 -0800 Message-ID: <20140114004637.27138.50365.stgit@viggo.jf.intel.com> In-Reply-To: <20140114004509.27138.50345.stgit@viggo.jf.intel.com> References: <20140114004509.27138.50345.stgit@viggo.jf.intel.com> User-Agent: StGit/0.17.1-3-g7cb9 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Now that tcp_dma_try_early_copy() is gone nothing ever sets copied_early. Also reverts "53240c208776 tcp: Fix possible double-ack w/ user dma" since it is no longer necessary. Cc: Ali Saidi Cc: James Morris Cc: Patrick McHardy Cc: Eric Dumazet Cc: David S. Miller Cc: Alexey Kuznetsov Cc: Hideaki YOSHIFUJI Cc: Neal Cardwell Reported-by: Dave Jones Signed-off-by: Dan Williams --- Looking for an ack for this one, no changes since v2. net/ipv4/tcp_input.c | 22 ++++++++-------------- 1 files changed, 8 insertions(+), 14 deletions(-) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 33ef18e550c5..15911a280485 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -5145,19 +5145,15 @@ void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, } } else { int eaten = 0; - int copied_early = 0; bool fragstolen = false; - if (tp->copied_seq == tp->rcv_nxt && - len - tcp_header_len <= tp->ucopy.len) { - if (tp->ucopy.task == current && - sock_owned_by_user(sk) && !copied_early) { - __set_current_state(TASK_RUNNING); + if (tp->ucopy.task == current && + tp->copied_seq == tp->rcv_nxt && + len - tcp_header_len <= tp->ucopy.len && + sock_owned_by_user(sk)) { + __set_current_state(TASK_RUNNING); - if (!tcp_copy_to_iovec(sk, skb, tcp_header_len)) - eaten = 1; - } - if (eaten) { + if (!tcp_copy_to_iovec(sk, skb, tcp_header_len)) { /* Predicted packet is in window by definition. * seq == rcv_nxt and rcv_wup <= rcv_nxt. * Hence, check seq<=rcv_wup reduces to: @@ -5173,9 +5169,8 @@ void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, __skb_pull(skb, tcp_header_len); tp->rcv_nxt = TCP_SKB_CB(skb)->end_seq; NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPHPHITSTOUSER); + eaten = 1; } - if (copied_early) - tcp_cleanup_rbuf(sk, skb->len); } if (!eaten) { if (tcp_checksum_complete_user(sk, skb)) @@ -5212,8 +5207,7 @@ void tcp_rcv_established(struct sock *sk, struct sk_buff *skb, goto no_ack; } - if (!copied_early || tp->rcv_nxt != tp->rcv_wup) - __tcp_ack_snd_check(sk, 0); + __tcp_ack_snd_check(sk, 0); no_ack: if (eaten) kfree_skb_partial(skb, fragstolen); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/