get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1291777,
    "url": "http://patchwork.ozlabs.org/api/patches/1291777/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200516005121.4963-5-anthony.l.nguyen@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": "<20200516005121.4963-5-anthony.l.nguyen@intel.com>",
    "list_archive_url": null,
    "date": "2020-05-16T00:51:11",
    "name": "[S45,05/15] ice: Renaming and simplification in VF init path",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "71bf32865258b3d68b7dcdda6e77fae9d805bd4d",
    "submitter": {
        "id": 68875,
        "url": "http://patchwork.ozlabs.org/api/people/68875/?format=api",
        "name": "Tony Nguyen",
        "email": "anthony.l.nguyen@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/20200516005121.4963-5-anthony.l.nguyen@intel.com/mbox/",
    "series": [
        {
            "id": 177330,
            "url": "http://patchwork.ozlabs.org/api/series/177330/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=177330",
            "date": "2020-05-16T00:51:18",
            "name": "[S45,01/15] ice: Refactor ice_ena_vf_mappings to split MSIX and queue mappings",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/177330/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/1291777/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/1291777/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@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"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.133; helo=hemlock.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org; receiver=<UNKNOWN>)",
            "ozlabs.org;\n dmarc=fail (p=none dis=none) header.from=intel.com"
        ],
        "Received": [
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 49P6H259hxz9sTL\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 16 May 2020 10:54:06 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 4E24289A34;\n\tSat, 16 May 2020 00:54:05 +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 eau5FYPaHoBO; Sat, 16 May 2020 00:54:04 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 82C3088717;\n\tSat, 16 May 2020 00:54:04 +0000 (UTC)",
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by ash.osuosl.org (Postfix) with ESMTP id 3AA361BF9CC\n for <intel-wired-lan@lists.osuosl.org>; Sat, 16 May 2020 00:53:59 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by fraxinus.osuosl.org (Postfix) with ESMTP id 379E387F7D\n for <intel-wired-lan@lists.osuosl.org>; Sat, 16 May 2020 00:53:59 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id WHBuOBBaFO16 for <intel-wired-lan@lists.osuosl.org>;\n Sat, 16 May 2020 00:53:56 +0000 (UTC)",
            "from mga18.intel.com (mga18.intel.com [134.134.136.126])\n by fraxinus.osuosl.org (Postfix) with ESMTPS id F409B88018\n for <intel-wired-lan@lists.osuosl.org>; Sat, 16 May 2020 00:53:55 +0000 (UTC)",
            "from orsmga003.jf.intel.com ([10.7.209.27])\n by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 May 2020 17:53:54 -0700",
            "from unknown (HELO localhost.jf.intel.com) ([10.166.241.65])\n by orsmga003.jf.intel.com with ESMTP; 15 May 2020 17:53:54 -0700"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "IronPort-SDR": [
            "\n aHXsvtl94jpOshIuE3s5lDgYBEl8YoW/1PlsLxpSm1eJpa+VysJ1ttOaRdMriTYjYDi6uMgfOi\n F5br+xMhhDCg==",
            "\n agM6DLZ+hUIrh7dsJj37DfrdL54xVJiiRyHuRHjkCd76kc9VLRsCuEOcAdMsVImUPpUHMdsfn4\n sUp4L+zFeKNw=="
        ],
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.73,397,1583222400\"; d=\"scan'208\";a=\"263360541\"",
        "From": "Tony Nguyen <anthony.l.nguyen@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Fri, 15 May 2020 17:51:11 -0700",
        "Message-Id": "<20200516005121.4963-5-anthony.l.nguyen@intel.com>",
        "X-Mailer": "git-send-email 2.20.1",
        "In-Reply-To": "<20200516005121.4963-1-anthony.l.nguyen@intel.com>",
        "References": "<20200516005121.4963-1-anthony.l.nguyen@intel.com>",
        "MIME-Version": "1.0",
        "Subject": "[Intel-wired-lan] [PATCH S45 05/15] ice: Renaming and\n simplification in VF init path",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>",
        "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>",
        "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>,\n <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "From: Brett Creeley <brett.creeley@intel.com>\n\nSome function names weren't very clear and some portions of VF creation\ncould be moved into functions for clarity. Fix this by renaming some\nfunctions and move pieces of code into clearly name functions.\n\nSigned-off-by: Brett Creeley <brett.creeley@intel.com>\n---\n .../net/ethernet/intel/ice/ice_virtchnl_pf.c  | 83 ++++++++++++-------\n 1 file changed, 54 insertions(+), 29 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\nindex 5b9f01f1f65b..d5c1c55f7ebc 100644\n--- a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\n+++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\n@@ -1469,16 +1469,56 @@ static int ice_start_vfs(struct ice_pf *pf)\n }\n \n /**\n- * ice_alloc_vfs - Allocate and set up VFs resources\n+ * ice_set_dflt_settings - set VF defaults during initialization/creation\n+ * @pf: PF holding reference to all VFs for default configuration\n+ */\n+static void ice_set_dflt_settings_vfs(struct ice_pf *pf)\n+{\n+\tint i;\n+\n+\tice_for_each_vf(pf, i) {\n+\t\tstruct ice_vf *vf = &pf->vf[i];\n+\n+\t\tvf->pf = pf;\n+\t\tvf->vf_id = i;\n+\t\tvf->vf_sw_id = pf->first_sw;\n+\t\t/* assign default capabilities */\n+\t\tset_bit(ICE_VIRTCHNL_VF_CAP_L2, &vf->vf_caps);\n+\t\tvf->spoofchk = true;\n+\t\tvf->num_vf_qs = pf->num_qps_per_vf;\n+\t}\n+}\n+\n+/**\n+ * ice_alloc_vfs - allocate num_vfs in the PF structure\n+ * @pf: PF to store the allocated VFs in\n+ * @num_vfs: number of VFs to allocate\n+ */\n+static int ice_alloc_vfs(struct ice_pf *pf, int num_vfs)\n+{\n+\tstruct ice_vf *vfs;\n+\n+\tvfs = devm_kcalloc(ice_pf_to_dev(pf), num_vfs, sizeof(*vfs),\n+\t\t\t   GFP_KERNEL);\n+\tif (!vfs)\n+\t\treturn -ENOMEM;\n+\n+\tpf->vf = vfs;\n+\tpf->num_alloc_vfs = num_vfs;\n+\n+\treturn 0;\n+}\n+\n+/**\n+ * ice_ena_vfs - enable VFs so they are ready to be used\n  * @pf: pointer to the PF structure\n- * @num_alloc_vfs: number of VFs to allocate\n+ * @num_vfs: number of VFs to enable\n  */\n-static int ice_alloc_vfs(struct ice_pf *pf, u16 num_alloc_vfs)\n+static int ice_ena_vfs(struct ice_pf *pf, u16 num_vfs)\n {\n \tstruct device *dev = ice_pf_to_dev(pf);\n \tstruct ice_hw *hw = &pf->hw;\n-\tstruct ice_vf *vfs;\n-\tint i, ret;\n+\tint ret;\n \n \t/* Disable global interrupt 0 so we don't try to handle the VFLR. */\n \twr32(hw, GLINT_DYN_CTL(pf->oicr_idx),\n@@ -1486,38 +1526,24 @@ static int ice_alloc_vfs(struct ice_pf *pf, u16 num_alloc_vfs)\n \tset_bit(__ICE_OICR_INTR_DIS, pf->state);\n \tice_flush(hw);\n \n-\tret = pci_enable_sriov(pf->pdev, num_alloc_vfs);\n+\tret = pci_enable_sriov(pf->pdev, num_vfs);\n \tif (ret) {\n \t\tpf->num_alloc_vfs = 0;\n \t\tgoto err_unroll_intr;\n \t}\n-\t/* allocate memory */\n-\tvfs = devm_kcalloc(dev, num_alloc_vfs, sizeof(*vfs), GFP_KERNEL);\n-\tif (!vfs) {\n-\t\tret = -ENOMEM;\n+\n+\tret = ice_alloc_vfs(pf, num_vfs);\n+\tif (ret)\n \t\tgoto err_pci_disable_sriov;\n-\t}\n-\tpf->vf = vfs;\n-\tpf->num_alloc_vfs = num_alloc_vfs;\n \n \tif (ice_set_per_vf_res(pf)) {\n \t\tdev_err(dev, \"Not enough resources for %d VFs, try with fewer number of VFs\\n\",\n-\t\t\tnum_alloc_vfs);\n+\t\t\tnum_vfs);\n \t\tret = -ENOSPC;\n \t\tgoto err_unroll_sriov;\n \t}\n \n-\t/* apply default profile */\n-\tice_for_each_vf(pf, i) {\n-\t\tvfs[i].pf = pf;\n-\t\tvfs[i].vf_sw_id = pf->first_sw;\n-\t\tvfs[i].vf_id = i;\n-\n-\t\t/* assign default capabilities */\n-\t\tset_bit(ICE_VIRTCHNL_VF_CAP_L2, &vfs[i].vf_caps);\n-\t\tvfs[i].spoofchk = true;\n-\t\tvfs[i].num_vf_qs = pf->num_qps_per_vf;\n-\t}\n+\tice_set_dflt_settings_vfs(pf);\n \n \tif (ice_start_vfs(pf)) {\n \t\tdev_err(dev, \"Failed to start VF(s)\\n\");\n@@ -1529,9 +1555,8 @@ static int ice_alloc_vfs(struct ice_pf *pf, u16 num_alloc_vfs)\n \treturn 0;\n \n err_unroll_sriov:\n+\tdevm_kfree(dev, pf->vf);\n \tpf->vf = NULL;\n-\tdevm_kfree(dev, vfs);\n-\tvfs = NULL;\n \tpf->num_alloc_vfs = 0;\n err_pci_disable_sriov:\n \tpci_disable_sriov(pf->pdev);\n@@ -1566,8 +1591,8 @@ static int ice_pci_sriov_ena(struct ice_pf *pf, int num_vfs)\n \t\treturn -EOPNOTSUPP;\n \t}\n \n-\tdev_info(dev, \"Allocating %d VFs\\n\", num_vfs);\n-\terr = ice_alloc_vfs(pf, num_vfs);\n+\tdev_info(dev, \"Enabling %d VFs\\n\", num_vfs);\n+\terr = ice_ena_vfs(pf, num_vfs);\n \tif (err) {\n \t\tdev_err(dev, \"Failed to enable SR-IOV: %d\\n\", err);\n \t\treturn err;\n",
    "prefixes": [
        "S45",
        "05/15"
    ]
}