get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 666786,
    "url": "http://patchwork.ozlabs.org/api/patches/666786/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1473210312-29592-3-git-send-email-bimmy.pujari@intel.com/",
    "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": "<1473210312-29592-3-git-send-email-bimmy.pujari@intel.com>",
    "list_archive_url": null,
    "date": "2016-09-07T01:05:04",
    "name": "[next,S45,02/10] i40e: Limit TX descriptor count in cases where frag size is greater than 16K",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "d1b734c101a80af8b61f84cf98a60db7ae658e13",
    "submitter": {
        "id": 68919,
        "url": "http://patchwork.ozlabs.org/api/people/68919/?format=api",
        "name": "Pujari, Bimmy",
        "email": "bimmy.pujari@intel.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/1473210312-29592-3-git-send-email-bimmy.pujari@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/666786/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/666786/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 whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3sTQJJ4Wlvz9s9Y\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed,  7 Sep 2016 11:05:52 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id D80F18BFE1;\n\tWed,  7 Sep 2016 01:05:50 +0000 (UTC)",
            "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id IROC5ZpVXuJi; Wed,  7 Sep 2016 01:05:48 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 873CF8BF7A;\n\tWed,  7 Sep 2016 01:05:47 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 097BE1C105C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed,  7 Sep 2016 01:05:46 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 06595C093A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed,  7 Sep 2016 01:05:46 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id dgLGLZGx9KYF for <intel-wired-lan@lists.osuosl.org>;\n\tWed,  7 Sep 2016 01:05:45 +0000 (UTC)",
            "from mga06.intel.com (mga06.intel.com [134.134.136.31])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 4FEA1C0923\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed,  7 Sep 2016 01:05:45 +0000 (UTC)",
            "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby orsmga104.jf.intel.com with ESMTP; 06 Sep 2016 18:05:44 -0700",
            "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([134.134.2.177])\n\tby fmsmga002.fm.intel.com with ESMTP; 06 Sep 2016 18:05:45 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos; i=\"5.30,294,1470726000\"; d=\"scan'208\";\n\ta=\"1052338753\"",
        "From": "Bimmy Pujari <bimmy.pujari@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Tue,  6 Sep 2016 18:05:04 -0700",
        "Message-Id": "<1473210312-29592-3-git-send-email-bimmy.pujari@intel.com>",
        "X-Mailer": "git-send-email 2.4.11",
        "In-Reply-To": "<1473210312-29592-1-git-send-email-bimmy.pujari@intel.com>",
        "References": "<1473210312-29592-1-git-send-email-bimmy.pujari@intel.com>",
        "Subject": "[Intel-wired-lan] [next PATCH S45 02/10] i40e: Limit TX descriptor\n\tcount in cases where frag size is greater than 16K",
        "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>",
        "MIME-Version": "1.0",
        "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": "From: Alexander Duyck <alexander.h.duyck@intel.com>\n\nThe i40e driver was incorrectly assuming that we would always be pulling\nno more than 1 descriptor from each fragment.  It is in fact possible for\nus to end up with the case where 2 descriptors worth of data may be pulled\nwhen a frame is larger than one of the pieces generated when aligning the\npayload to either 4K or pieces smaller than 16K.\n\nTo adjust for this we just need to make certain to test all the way to the\nend of the fragments as it is possible for us to span 2 descriptors in the\nblock before us so we need to guarantee that even the last 6 descriptors\nhave enough data to fill a full frame.\n\nSigned-off-by: Alexander Duyck <alexander.h.duyck@intel.com>\nChange-ID: Ic2ecb4d6b745f447d334e66c14002152f50e2f99\n---\nTesting Hints:\n        This is hard to reproduce.  Patch submitted to customer for\n        testing.  Best effort would be to try testing TSO, if possible\n        TSO with iSCSI to verify nothing there is broken.\n\nHSD-number: 10021204\n\n drivers/net/ethernet/intel/i40e/i40e_txrx.c   | 7 ++-----\n drivers/net/ethernet/intel/i40evf/i40e_txrx.c | 7 ++-----\n 2 files changed, 4 insertions(+), 10 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex f8d6623..bf7bb7c 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -2621,9 +2621,7 @@ bool __i40e_chk_linearize(struct sk_buff *skb)\n \t\treturn false;\n \n \t/* We need to walk through the list and validate that each group\n-\t * of 6 fragments totals at least gso_size.  However we don't need\n-\t * to perform such validation on the last 6 since the last 6 cannot\n-\t * inherit any data from a descriptor after them.\n+\t * of 6 fragments totals at least gso_size.\n \t */\n \tnr_frags -= I40E_MAX_BUFFER_TXD - 2;\n \tfrag = &skb_shinfo(skb)->frags[0];\n@@ -2654,8 +2652,7 @@ bool __i40e_chk_linearize(struct sk_buff *skb)\n \t\tif (sum < 0)\n \t\t\treturn true;\n \n-\t\t/* use pre-decrement to avoid processing last fragment */\n-\t\tif (!--nr_frags)\n+\t\tif (!nr_frags--)\n \t\t\tbreak;\n \n \t\tsum -= skb_frag_size(stale++);\ndiff --git a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\nindex 0130458..e3427eb 100644\n--- a/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40evf/i40e_txrx.c\n@@ -1832,9 +1832,7 @@ bool __i40evf_chk_linearize(struct sk_buff *skb)\n \t\treturn false;\n \n \t/* We need to walk through the list and validate that each group\n-\t * of 6 fragments totals at least gso_size.  However we don't need\n-\t * to perform such validation on the last 6 since the last 6 cannot\n-\t * inherit any data from a descriptor after them.\n+\t * of 6 fragments totals at least gso_size.\n \t */\n \tnr_frags -= I40E_MAX_BUFFER_TXD - 2;\n \tfrag = &skb_shinfo(skb)->frags[0];\n@@ -1865,8 +1863,7 @@ bool __i40evf_chk_linearize(struct sk_buff *skb)\n \t\tif (sum < 0)\n \t\t\treturn true;\n \n-\t\t/* use pre-decrement to avoid processing last fragment */\n-\t\tif (!--nr_frags)\n+\t\tif (!nr_frags--)\n \t\t\tbreak;\n \n \t\tsum -= skb_frag_size(stale++);\n",
    "prefixes": [
        "next",
        "S45",
        "02/10"
    ]
}