get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 541149,
    "url": "http://patchwork.ozlabs.org/api/patches/541149/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1446852372-25480-10-git-send-email-joshua.a.hay@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": "<1446852372-25480-10-git-send-email-joshua.a.hay@intel.com>",
    "list_archive_url": null,
    "date": "2015-11-06T23:26:07",
    "name": "[next,S21,09/14] i40e: use priv flags to control packet split",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "e73433ef981b13966772d76238245b9249eb94be",
    "submitter": {
        "id": 19461,
        "url": "http://patchwork.ozlabs.org/api/people/19461/?format=api",
        "name": "Joshua Hay",
        "email": "joshua.a.hay@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/1446852372-25480-10-git-send-email-joshua.a.hay@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/541149/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/541149/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 E5C401402C0\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  7 Nov 2015 10:26:29 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 3AC50332AC;\n\tFri,  6 Nov 2015 23:26:29 +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 VD0Zb+vU6Ets; Fri,  6 Nov 2015 23:26:25 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 8AE4F332BC;\n\tFri,  6 Nov 2015 23:26:23 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 870EA1C09CC\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  6 Nov 2015 23:26:21 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 837B5A3EBE\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  6 Nov 2015 23:26:21 +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 RQsdxct4lBNm for <intel-wired-lan@lists.osuosl.org>;\n\tFri,  6 Nov 2015 23:26:21 +0000 (UTC)",
            "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id EA64AA3EDA\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  6 Nov 2015 23:26:13 +0000 (UTC)",
            "from fmsmga003.fm.intel.com ([10.253.24.29])\n\tby orsmga103.jf.intel.com with ESMTP; 06 Nov 2015 15:26:13 -0800",
            "from jahay1-mobl2.amr.corp.intel.com (HELO\n\tlocalhost.localdomain.localdomain) ([134.134.176.151])\n\tby FMSMGA003.fm.intel.com with ESMTP; 06 Nov 2015 15:26:13 -0800"
        ],
        "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.20,254,1444719600\"; d=\"scan'208\";a=\"595575989\"",
        "From": "Joshua Hay <joshua.a.hay@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Fri,  6 Nov 2015 15:26:07 -0800",
        "Message-Id": "<1446852372-25480-10-git-send-email-joshua.a.hay@intel.com>",
        "X-Mailer": "git-send-email 2.1.0",
        "In-Reply-To": "<1446852372-25480-1-git-send-email-joshua.a.hay@intel.com>",
        "References": "<1446852372-25480-1-git-send-email-joshua.a.hay@intel.com>",
        "Subject": "[Intel-wired-lan] [next PATCH S21 09/14] i40e: use priv flags to\n\tcontrol packet split",
        "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: Jesse Brandeburg <jesse.brandeburg@intel.com>\n\nEthtool priv flags implementation to enable or disable packet split, which\nis a hardware feature that inspects headers and will put headers in a\nseparate DMA buffer from the payload data.  The driver was automatically\nchoosing to enable packet split in some cases and this gives the user the\nability to turn it off/on explicitly.\n\nto query state:\nethtool --show-priv-flags ethx\n\nto enable:\nethtool --set-priv-flags ethx packet-split on\nto disable:\nethtool --set-priv-flags ethx packet-split off\n\nWhy would anyone want this?\n\tBecause some environments benefit from header/data split in the receive\n\tbuffer, and the driver defaults to one or the other depending on\n\tenvironment/kernel parameters.\n\nWhy didn't you implement a generic ethtool control for this feature?\n\tBecause Intel hardware is the only hardware that supports header/data\n\tsplit.\n\nSigned-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>\nChange-ID: I803121e1eecc9ccb2884031fd85dd1110b3af66d\n---\n drivers/net/ethernet/intel/i40e/i40e.h         |  1 +\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 27 ++++++++++++++++++++++++++\n 2 files changed, 28 insertions(+)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h\nindex 768a19b..050fc0f 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e.h\n@@ -104,6 +104,7 @@\n #define I40E_PRIV_FLAGS_LINKPOLL_FLAG\tBIT(1)\n #define I40E_PRIV_FLAGS_FD_ATR\t\tBIT(2)\n #define I40E_PRIV_FLAGS_VEB_STATS\tBIT(3)\n+#define I40E_PRIV_FLAGS_PS\t\tBIT(4)\n \n #define I40E_NVM_VERSION_LO_SHIFT  0\n #define I40E_NVM_VERSION_LO_MASK   (0xff << I40E_NVM_VERSION_LO_SHIFT)\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex b52c509..d686041 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -231,6 +231,7 @@ static const char i40e_priv_flags_strings[][ETH_GSTRING_LEN] = {\n \t\"LinkPolling\",\n \t\"flow-director-atr\",\n \t\"veb-stats\",\n+\t\"packet-split\",\n };\n \n #define I40E_PRIV_FLAGS_STR_LEN ARRAY_SIZE(i40e_priv_flags_strings)\n@@ -2709,6 +2710,8 @@ static u32 i40e_get_priv_flags(struct net_device *dev)\n \t\tI40E_PRIV_FLAGS_FD_ATR : 0;\n \tret_flags |= pf->flags & I40E_FLAG_VEB_STATS_ENABLED ?\n \t\tI40E_PRIV_FLAGS_VEB_STATS : 0;\n+\tret_flags |= pf->flags & I40E_FLAG_RX_PS_ENABLED ?\n+\t\tI40E_PRIV_FLAGS_PS : 0;\n \n \treturn ret_flags;\n }\n@@ -2723,6 +2726,26 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)\n \tstruct i40e_netdev_priv *np = netdev_priv(dev);\n \tstruct i40e_vsi *vsi = np->vsi;\n \tstruct i40e_pf *pf = vsi->back;\n+\tbool reset_required = false;\n+\n+\t/* NOTE: MFP is not settable */\n+\n+\t/* allow the user to control the method of receive\n+\t * buffer dma, whether the packet is split at header\n+\t * boundaries into two separate buffers.  In some cases\n+\t * one routine or the other will perform better.\n+\t */\n+\tif ((flags & I40E_PRIV_FLAGS_PS) &&\n+\t    !(pf->flags & I40E_FLAG_RX_PS_ENABLED)) {\n+\t\tpf->flags |= I40E_FLAG_RX_PS_ENABLED;\n+\t\tpf->flags &= ~I40E_FLAG_RX_1BUF_ENABLED;\n+\t\treset_required = true;\n+\t} else if (!(flags & I40E_PRIV_FLAGS_PS) &&\n+\t\t   (pf->flags & I40E_FLAG_RX_PS_ENABLED)) {\n+\t\tpf->flags &= ~I40E_FLAG_RX_PS_ENABLED;\n+\t\tpf->flags |= I40E_FLAG_RX_1BUF_ENABLED;\n+\t\treset_required = true;\n+\t}\n \n \tif (flags & I40E_PRIV_FLAGS_LINKPOLL_FLAG)\n \t\tpf->flags |= I40E_FLAG_LINK_POLLING_ENABLED;\n@@ -2745,6 +2768,10 @@ static int i40e_set_priv_flags(struct net_device *dev, u32 flags)\n \telse\n \t\tpf->flags &= ~I40E_FLAG_VEB_STATS_ENABLED;\n \n+\t/* if needed, issue reset to cause things to take effect */\n+\tif (reset_required)\n+\t\ti40e_do_reset(pf, BIT(__I40E_PF_RESET_REQUESTED));\n+\n \treturn 0;\n }\n \n",
    "prefixes": [
        "next",
        "S21",
        "09/14"
    ]
}