get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 680966,
    "url": "http://patchwork.ozlabs.org/api/patches/680966/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1476224818-16844-2-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": "<1476224818-16844-2-git-send-email-bimmy.pujari@intel.com>",
    "list_archive_url": null,
    "date": "2016-10-11T22:26:53",
    "name": "[next,S50,1/6] i40e: Add common function for finding VSI by type",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "9be04473fcc0d05c90576e20b228b652b0bd4265",
    "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/1476224818-16844-2-git-send-email-bimmy.pujari@intel.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/680966/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/680966/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 hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\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 3sts8n4nxdz9s9N\n\tfor <incoming@patchwork.ozlabs.org>;\n\tWed, 12 Oct 2016 09:28:41 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 46B3188C9A;\n\tTue, 11 Oct 2016 22:28:40 +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 T6S14+xcZVvb; Tue, 11 Oct 2016 22:28:30 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id BB1A78A47C;\n\tTue, 11 Oct 2016 22:28:29 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 6E9181CEB01\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 11 Oct 2016 22:28:28 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 6B94FC1515\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 11 Oct 2016 22:28:28 +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 72Le_ZIu-Kqp for <intel-wired-lan@lists.osuosl.org>;\n\tTue, 11 Oct 2016 22:28:26 +0000 (UTC)",
            "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 0CFC7C150F\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 11 Oct 2016 22:28:26 +0000 (UTC)",
            "from orsmga001.jf.intel.com ([10.7.209.18])\n\tby fmsmga105.fm.intel.com with ESMTP; 11 Oct 2016 15:28:25 -0700",
            "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([134.134.2.167])\n\tby orsmga001.jf.intel.com with ESMTP; 11 Oct 2016 15:28:25 -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.31,479,1473145200\"; d=\"scan'208\";\n\ta=\"1043428126\"",
        "From": "Bimmy Pujari <bimmy.pujari@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Tue, 11 Oct 2016 15:26:53 -0700",
        "Message-Id": "<1476224818-16844-2-git-send-email-bimmy.pujari@intel.com>",
        "X-Mailer": "git-send-email 2.4.11",
        "In-Reply-To": "<1476224818-16844-1-git-send-email-bimmy.pujari@intel.com>",
        "References": "<1476224818-16844-1-git-send-email-bimmy.pujari@intel.com>",
        "Subject": "[Intel-wired-lan] [next PATCH S50 1/6] i40e: Add common function\n\tfor finding VSI by type",
        "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\nThis patch adds a common method for finding a VSI by type.  The main\nmotivation for doing this is that the Flow Director path actually had two\nways of handling this, one stopped on first match and one did not.  This\npatch makes it so that all callers of this function will get the same\napproach for finding a VSI.\n\nSigned-off-by: Alexander Duyck <alexander.h.duyck@intel.com>\nSigned-off-by: Bimmy Pujari <bimmy.pujari@intel.com>\nChange-ID: Ibf25de8acd8466582520694424aa87da66965fbd\n---\nTesting Hints:\n        Verify that Flow Director / NTUPLE filters still function.\n        Verify that having VMDq2 VSIs still block ethtool offline test.\n\n drivers/net/ethernet/intel/i40e/i40e.h         | 19 +++++++++++++++++++\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 12 +-----------\n drivers/net/ethernet/intel/i40e/i40e_main.c    | 21 ++++++---------------\n drivers/net/ethernet/intel/i40e/i40e_txrx.c    |  5 +----\n 4 files changed, 27 insertions(+), 30 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h\nindex 9121e46..bb02280 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e.h\n+++ b/drivers/net/ethernet/intel/i40e/i40e.h\n@@ -723,6 +723,25 @@ int i40e_get_rss(struct i40e_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size);\n void i40e_fill_rss_lut(struct i40e_pf *pf, u8 *lut,\n \t\t       u16 rss_table_size, u16 rss_size);\n struct i40e_vsi *i40e_find_vsi_from_id(struct i40e_pf *pf, u16 id);\n+/**\n+ * i40e_find_vsi_by_type - Find and return Flow Director VSI\n+ * @pf: PF to search for VSI\n+ * @type: Value indicating type of VSI we are looking for\n+ **/\n+static inline struct i40e_vsi *\n+i40e_find_vsi_by_type(struct i40e_pf *pf, u16 type)\n+{\n+\tint i;\n+\n+\tfor (i = 0; i < pf->num_alloc_vsi; i++) {\n+\t\tstruct i40e_vsi *vsi = pf->vsi[i];\n+\n+\t\tif (vsi && vsi->type == type)\n+\t\t\treturn vsi;\n+\t}\n+\n+\treturn NULL;\n+}\n void i40e_update_stats(struct i40e_vsi *vsi);\n void i40e_update_eth_stats(struct i40e_vsi *vsi);\n struct rtnl_link_stats64 *i40e_get_vsi_stats_struct(struct i40e_vsi *vsi);\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex fb4fb52..962a9bb 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -1768,17 +1768,7 @@ static inline bool i40e_active_vfs(struct i40e_pf *pf)\n \n static inline bool i40e_active_vmdqs(struct i40e_pf *pf)\n {\n-\tstruct i40e_vsi **vsi = pf->vsi;\n-\tint i;\n-\n-\tfor (i = 0; i < pf->num_alloc_vsi; i++) {\n-\t\tif (!vsi[i])\n-\t\t\tcontinue;\n-\t\tif (vsi[i]->type == I40E_VSI_VMDQ2)\n-\t\t\treturn true;\n-\t}\n-\n-\treturn false;\n+\treturn !!i40e_find_vsi_by_type(pf, I40E_VSI_VMDQ2);\n }\n \n static void i40e_diag_test(struct net_device *netdev,\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c\nindex 4f14b55..e4e2775 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_main.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c\n@@ -6711,7 +6711,6 @@ static int i40e_vsi_clear(struct i40e_vsi *vsi);\n static void i40e_fdir_sb_setup(struct i40e_pf *pf)\n {\n \tstruct i40e_vsi *vsi;\n-\tint i;\n \n \t/* quick workaround for an NVM issue that leaves a critical register\n \t * uninitialized\n@@ -6722,6 +6721,7 @@ static void i40e_fdir_sb_setup(struct i40e_pf *pf)\n \t\t\t0xeacb7d61, 0xaa4f05b6, 0x9c5c89ed, 0xfc425ddb,\n \t\t\t0xa4654832, 0xfc7461d4, 0x8f827619, 0xf5c63c21,\n \t\t\t0x95b3a76d};\n+\t\tint i;\n \n \t\tfor (i = 0; i <= I40E_GLQF_HKEY_MAX_INDEX; i++)\n \t\t\twr32(&pf->hw, I40E_GLQF_HKEY(i), hkey[i]);\n@@ -6731,13 +6731,7 @@ static void i40e_fdir_sb_setup(struct i40e_pf *pf)\n \t\treturn;\n \n \t/* find existing VSI and see if it needs configuring */\n-\tvsi = NULL;\n-\tfor (i = 0; i < pf->num_alloc_vsi; i++) {\n-\t\tif (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR) {\n-\t\t\tvsi = pf->vsi[i];\n-\t\t\tbreak;\n-\t\t}\n-\t}\n+\tvsi = i40e_find_vsi_by_type(pf, I40E_VSI_FDIR);\n \n \t/* create a new VSI if none exists */\n \tif (!vsi) {\n@@ -6759,15 +6753,12 @@ static void i40e_fdir_sb_setup(struct i40e_pf *pf)\n  **/\n static void i40e_fdir_teardown(struct i40e_pf *pf)\n {\n-\tint i;\n+\tstruct i40e_vsi *vsi;\n \n \ti40e_fdir_filter_exit(pf);\n-\tfor (i = 0; i < pf->num_alloc_vsi; i++) {\n-\t\tif (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR) {\n-\t\t\ti40e_vsi_release(pf->vsi[i]);\n-\t\t\tbreak;\n-\t\t}\n-\t}\n+\tvsi = i40e_find_vsi_by_type(pf, I40E_VSI_FDIR);\n+\tif (vsi)\n+\t\ti40e_vsi_release(vsi);\n }\n \n /**\ndiff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex 783ac4e..75b8f5b 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -125,10 +125,7 @@ static int i40e_program_fdir_filter(struct i40e_fdir_filter *fdir_data,\n \tu16 i;\n \n \t/* find existing FDIR VSI */\n-\tvsi = NULL;\n-\tfor (i = 0; i < pf->num_alloc_vsi; i++)\n-\t\tif (pf->vsi[i] && pf->vsi[i]->type == I40E_VSI_FDIR)\n-\t\t\tvsi = pf->vsi[i];\n+\tvsi = i40e_find_vsi_by_type(pf, I40E_VSI_FDIR);\n \tif (!vsi)\n \t\treturn -ENOENT;\n \n",
    "prefixes": [
        "next",
        "S50",
        "1/6"
    ]
}