get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/599724/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 599724,
    "url": "http://patchwork.ozlabs.org/api/patches/599724/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20160318230647.14801.24078.stgit@localhost.localdomain/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20160318230647.14801.24078.stgit@localhost.localdomain>",
    "list_archive_url": null,
    "date": "2016-03-18T23:06:47",
    "name": "[next,1/2] i40e/i40evf: Fix TSO checksum pseudo-header adjustment",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "2be63459b6995c0b28e70f66bee8ded3d722794a",
    "submitter": {
        "id": 67293,
        "url": "http://patchwork.ozlabs.org/api/people/67293/?format=api",
        "name": "Alexander Duyck",
        "email": "aduyck@mirantis.com"
    },
    "delegate": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/users/68/?format=api",
        "username": "jtkirshe",
        "first_name": "Jeff",
        "last_name": "Kirsher",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20160318230647.14801.24078.stgit@localhost.localdomain/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/599724/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/599724/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Received": [
            "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id 3qRgpP2m9Tz9s5Q\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 19 Mar 2016 10:06:53 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id A9E6933B0B;\n\tFri, 18 Mar 2016 23:06:52 +0000 (UTC)",
            "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id j947Cgt2AklU; Fri, 18 Mar 2016 23:06:51 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 933ED33B0F;\n\tFri, 18 Mar 2016 23:06:51 +0000 (UTC)",
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id D892D1BF9E4\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 18 Mar 2016 23:06:49 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id D38E786D1E\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 18 Mar 2016 23:06:49 +0000 (UTC)",
            "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id r58+GeK2NF4H for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 18 Mar 2016 23:06:49 +0000 (UTC)",
            "from mail-pf0-f173.google.com (mail-pf0-f173.google.com\n\t[209.85.192.173])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 0A44386ADA\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 18 Mar 2016 23:06:48 +0000 (UTC)",
            "by mail-pf0-f173.google.com with SMTP id u190so186089842pfb.3\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 18 Mar 2016 16:06:48 -0700 (PDT)",
            "from localhost.localdomain\n\t(static-50-53-29-36.bvtn.or.frontiernet.net. [50.53.29.36])\n\tby smtp.gmail.com with ESMTPSA id\n\tq26sm23366120pfi.57.2016.03.18.16.06.48\n\tfor <intel-wired-lan@lists.osuosl.org>\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tFri, 18 Mar 2016 16:06:48 -0700 (PDT)"
        ],
        "Authentication-Results": "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=mirantis.com header.i=@mirantis.com\n\theader.b=MkpZ6rL8; dkim-atps=neutral",
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "from auto-whitelisted by SQLgrey-1.7.6",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=mirantis.com;\n\ts=google; \n\th=subject:from:to:date:message-id:in-reply-to:references:user-agent\n\t:mime-version:content-transfer-encoding;\n\tbh=UCYpygmiJ+GD58WqTwo/etYKxTkz7gnt9NA1cbvWEgw=;\n\tb=MkpZ6rL8T5Vq3o3YFLFoxF+bEsxjZAImZiEoo8reNUB0IkTAp4rbirXwtrHLPx5FOO\n\tc9URXs+Jp+poCtz162nBH9Cb4l+ymCTxk80V3+L67Fpieo/9RgCZuqKCLWdgNRVL37MC\n\twEU7Jw+gZ5AebW3ij00FsiI2lV3A3GRuG0PiA=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:subject:from:to:date:message-id:in-reply-to\n\t:references:user-agent:mime-version:content-transfer-encoding;\n\tbh=UCYpygmiJ+GD58WqTwo/etYKxTkz7gnt9NA1cbvWEgw=;\n\tb=Mw8vn6xrUlXpRnaJkw/f9okZcGnRzb8nH6c8oi8s5edTo9UKmMqBzupaCzbBL/meFy\n\tHOrfYMn+uzjneJsKGU0CHlZySbk2/k+IHu0ZVR/pU/zhXLMlLX+2zkhZoR7o3f0NkQ8C\n\txt4IT8O7lOn/LVHxztzpRtIl4wyxKQvb2Qy/HgUpDTsFyyzBaveeIxSUZYWougQd1cLA\n\tmQXiCrfzmIp8crDZTkT9zp1eDyu8LGBleAfEyWvIGWv+1EYqdlPflnCOhH+i4DEIrZkV\n\tXgwT/dCM2aCZ1G8Hvp+8744ZcJsctnMNvcUtVfGGAIDaQavoeo/x1BjrNdkzMtS+fqXv\n\tf6RA==",
        "X-Gm-Message-State": "AD7BkJL93VcnfkVvyl5WPQ4to3SYk7uO6aH8SIFl6gB+vpdCJ1xFpB9vRXi3j9pYwaY1Ms2j",
        "X-Received": "by 10.66.193.202 with SMTP id hq10mr26765807pac.6.1458342408665; \n\tFri, 18 Mar 2016 16:06:48 -0700 (PDT)",
        "From": "Alexander Duyck <aduyck@mirantis.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Fri, 18 Mar 2016 16:06:47 -0700",
        "Message-ID": "<20160318230647.14801.24078.stgit@localhost.localdomain>",
        "In-Reply-To": "<20160318230425.14801.87895.stgit@localhost.localdomain>",
        "References": "<20160318230425.14801.87895.stgit@localhost.localdomain>",
        "User-Agent": "StGit/0.17.1-dirty",
        "MIME-Version": "1.0",
        "Subject": "[Intel-wired-lan] [next PATCH 1/2] i40e/i40evf: Fix TSO checksum\n\tpseudo-header adjustment",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "With IPv4 and IPv6 now using the same format for checksums based on the\nlength of the frame we need to update the i40e and i40evf drivers so that\nthey correctly account for lengths greater than or equal to 64K.\n\nWith this patch the driver should now correctly update checksums for frames\nup to 16776960 in length which should be more than large enough for all\npossible TSO frames in the near future.\n\nSigned-off-by: Alexander Duyck <aduyck@mirantis.com>\n---\n drivers/net/ethernet/intel/i40e/i40e_txrx.c   |   11 ++++-------\n drivers/net/ethernet/intel/i40evf/i40e_txrx.c |   11 ++++-------\n 2 files changed, 8 insertions(+), 14 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex 5bef5b0f00d9..5d5fa5359a1d 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -2304,10 +2304,8 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \t\t\tl4_offset = l4.hdr - skb->data;\n \n \t\t\t/* remove payload length from outer checksum */\n-\t\t\tpaylen = (__force u16)l4.udp->check;\n-\t\t\tpaylen += ntohs((__force __be16)1) *\n-\t\t\t\t\t(u16)~(skb->len - l4_offset);\n-\t\t\tl4.udp->check = ~csum_fold((__force __wsum)paylen);\n+\t\t\tpaylen = skb->len - l4_offset;\n+\t\t\tcsum_replace_by_diff(&l4.udp->check, htonl(paylen));\n \t\t}\n \n \t\t/* reset pointers to inner headers */\n@@ -2327,9 +2325,8 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \tl4_offset = l4.hdr - skb->data;\n \n \t/* remove payload length from inner checksum */\n-\tpaylen = (__force u16)l4.tcp->check;\n-\tpaylen += ntohs((__force __be16)1) * (u16)~(skb->len - l4_offset);\n-\tl4.tcp->check = ~csum_fold((__force __wsum)paylen);\n+\tpaylen = skb->len - l4_offset;\n+\tcsum_replace_by_diff(&l4.tcp->check, htonl(paylen));\n \n \t/* compute length of segmentation header */\n \t*hdr_len = (l4.tcp->doff * 4) + l4_offset;\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\nindex 570348d93e5d..04aabc52ba0d 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\n@@ -1571,10 +1571,8 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \t\t\tl4_offset = l4.hdr - skb->data;\n \n \t\t\t/* remove payload length from outer checksum */\n-\t\t\tpaylen = (__force u16)l4.udp->check;\n-\t\t\tpaylen += ntohs((__force __be16)1) *\n-\t\t\t\t\t(u16)~(skb->len - l4_offset);\n-\t\t\tl4.udp->check = ~csum_fold((__force __wsum)paylen);\n+\t\t\tpaylen = skb->len - l4_offset;\n+\t\t\tcsum_replace_by_diff(&l4.udp->check, htonl(paylen));\n \t\t}\n \n \t\t/* reset pointers to inner headers */\n@@ -1594,9 +1592,8 @@ static int i40e_tso(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \tl4_offset = l4.hdr - skb->data;\n \n \t/* remove payload length from inner checksum */\n-\tpaylen = (__force u16)l4.tcp->check;\n-\tpaylen += ntohs((__force __be16)1) * (u16)~(skb->len - l4_offset);\n-\tl4.tcp->check = ~csum_fold((__force __wsum)paylen);\n+\tpaylen = skb->len - l4_offset;\n+\tcsum_replace_by_diff(&l4.tcp->check, htonl(paylen));\n \n \t/* compute length of segmentation header */\n \t*hdr_len = (l4.tcp->doff * 4) + l4_offset;\n",
    "prefixes": [
        "next",
        "1/2"
    ]
}