Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/743/?format=api
{ "id": 743, "url": "http://patchwork.ozlabs.org/api/patches/743/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1221947278-16715-4-git-send-email-ilpo.jarvinen@helsinki.fi/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1221947278-16715-4-git-send-email-ilpo.jarvinen@helsinki.fi>", "list_archive_url": null, "date": "2008-09-20T21:47:46", "name": "[PATCHv2,net-next,03/15] tcp: add helper for lost bit toggling", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "4e0a8b53336f241fb2ede0c9afbe4a17bd9801d8", "submitter": { "id": 255, "url": "http://patchwork.ozlabs.org/api/people/255/?format=api", "name": "Ilpo Järvinen", "email": "ilpo.jarvinen@helsinki.fi" }, "delegate": { "id": 34, "url": "http://patchwork.ozlabs.org/api/users/34/?format=api", "username": "davem", "first_name": "David", "last_name": "Miller", "email": "davem@davemloft.net" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1221947278-16715-4-git-send-email-ilpo.jarvinen@helsinki.fi/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/743/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/743/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.176.167])\n\tby ozlabs.org (Postfix) with ESMTP id 83B90DDE24\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSun, 21 Sep 2008 07:48:27 +1000 (EST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1752187AbYITVsK (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tSat, 20 Sep 2008 17:48:10 -0400", "(majordomo@vger.kernel.org) by vger.kernel.org id S1751808AbYITVsI\n\t(ORCPT <rfc822; netdev-outgoing>); Sat, 20 Sep 2008 17:48:08 -0400", "from courier.cs.helsinki.fi ([128.214.9.1]:56256 \"EHLO\n\tmail.cs.helsinki.fi\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751470AbYITVsB (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Sat, 20 Sep 2008 17:48:01 -0400", "from wrl-59.cs.helsinki.fi (wrl-59.cs.helsinki.fi\n\t[128.214.166.179])\n\t(AUTH: PLAIN cs-relay, TLS: TLSv1/SSLv3,256bits,AES256-SHA)\n\tby mail.cs.helsinki.fi with esmtp; Sun, 21 Sep 2008 00:47:59 +0300\n\tid 0005BEDD.48D56F8F.0000500A", "by wrl-59.cs.helsinki.fi (Postfix, from userid 50795)\n\tid A0ACEA00A4; Sun, 21 Sep 2008 00:47:58 +0300 (EEST)" ], "From": "\"=?ISO-8859-1?Q?Ilpo_J=E4rvinen?=\" <ilpo.jarvinen@helsinki.fi>", "To": "David Miller <davem@davemloft.net>", "Cc": "netdev@vger.kernel.org,\n\t\"=?utf-8?q?Ilpo=20J=E4rvinen?=\" <ilpo.jarvinen@helsinki.fi>", "Subject": "[PATCHv2 net-next 03/15] tcp: add helper for lost bit toggling", "Date": "Sun, 21 Sep 2008 00:47:46 +0300", "Message-Id": "<1221947278-16715-4-git-send-email-ilpo.jarvinen@helsinki.fi>", "X-Mailer": "git-send-email 1.5.4.2.156.ge3c5", "In-Reply-To": "<1221947278-16715-3-git-send-email-ilpo.jarvinen@helsinki.fi>", "References": "<1221947278-16715-1-git-send-email-ilpo.jarvinen@helsinki.fi>\n\t<1221947278-16715-2-git-send-email-ilpo.jarvinen@helsinki.fi>\n\t<1221947278-16715-3-git-send-email-ilpo.jarvinen@helsinki.fi>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=ISO-8859-1", "Content-Transfer-Encoding": "8bit", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "This useful because we'd need to verifying soon in many places\nwhich makes things slightly more complex than it used to be.\n\nSigned-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>\n---\n net/ipv4/tcp_input.c | 22 ++++++++++++----------\n 1 files changed, 12 insertions(+), 10 deletions(-)", "diff": "diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c\nindex 9e95ad6..1251233 100644\n--- a/net/ipv4/tcp_input.c\n+++ b/net/ipv4/tcp_input.c\n@@ -992,6 +992,16 @@ static void tcp_verify_retransmit_hint(struct tcp_sock *tp, struct sk_buff *skb)\n \t\ttp->retransmit_skb_hint = NULL;\n }\n \n+static void tcp_skb_mark_lost(struct tcp_sock *tp, struct sk_buff *skb)\n+{\n+\tif (!(TCP_SKB_CB(skb)->sacked & (TCPCB_LOST|TCPCB_SACKED_ACKED))) {\n+\t\ttcp_verify_retransmit_hint(tp, skb);\n+\n+\t\ttp->lost_out += tcp_skb_pcount(skb);\n+\t\tTCP_SKB_CB(skb)->sacked |= TCPCB_LOST;\n+\t}\n+}\n+\n /* This procedure tags the retransmission queue when SACKs arrive.\n *\n * We have three tag bits: SACKED(S), RETRANS(R) and LOST(L).\n@@ -2216,11 +2226,7 @@ static void tcp_mark_head_lost(struct sock *sk, int packets)\n \t\t\tcnt = packets;\n \t\t}\n \n-\t\tif (!(TCP_SKB_CB(skb)->sacked & (TCPCB_SACKED_ACKED|TCPCB_LOST))) {\n-\t\t\tTCP_SKB_CB(skb)->sacked |= TCPCB_LOST;\n-\t\t\ttp->lost_out += tcp_skb_pcount(skb);\n-\t\t\ttcp_verify_retransmit_hint(tp, skb);\n-\t\t}\n+\t\ttcp_skb_mark_lost(tp, skb);\n \t}\n \ttcp_verify_left_out(tp);\n }\n@@ -2262,11 +2268,7 @@ static void tcp_update_scoreboard(struct sock *sk, int fast_rexmit)\n \t\t\tif (!tcp_skb_timedout(sk, skb))\n \t\t\t\tbreak;\n \n-\t\t\tif (!(TCP_SKB_CB(skb)->sacked & (TCPCB_SACKED_ACKED|TCPCB_LOST))) {\n-\t\t\t\tTCP_SKB_CB(skb)->sacked |= TCPCB_LOST;\n-\t\t\t\ttp->lost_out += tcp_skb_pcount(skb);\n-\t\t\t\ttcp_verify_retransmit_hint(tp, skb);\n-\t\t\t}\n+\t\t\ttcp_skb_mark_lost(tp, skb);\n \t\t}\n \n \t\ttp->scoreboard_skb_hint = skb;\n", "prefixes": [ "PATCHv2", "net-next", "03/15" ] }