Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1016216/?format=api
{ "id": 1016216, "url": "http://patchwork.ozlabs.org/api/patches/1016216/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20181219180334.1104-3-anirudh.venkataramanan@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": "<20181219180334.1104-3-anirudh.venkataramanan@intel.com>", "list_archive_url": null, "date": "2018-12-19T18:03:21", "name": "[S10,02/15] ice: Refactor a few Tx scheduler functions", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "c87386e6b4380cf6d49c7afc7054ed67bdc7e8eb", "submitter": { "id": 73601, "url": "http://patchwork.ozlabs.org/api/people/73601/?format=api", "name": "Anirudh Venkataramanan", "email": "anirudh.venkataramanan@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/20181219180334.1104-3-anirudh.venkataramanan@intel.com/mbox/", "series": [ { "id": 82906, "url": "http://patchwork.ozlabs.org/api/series/82906/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=82906", "date": "2018-12-19T18:03:28", "name": "Feature updates for ice", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/82906/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1016216/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1016216/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\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.137; helo=fraxinus.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=intel.com" ], "Received": [ "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 43KjSG5pPZz9sB5\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 20 Dec 2018 05:03:42 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 615F585BC4;\n\tWed, 19 Dec 2018 18:03:41 +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 cYh-bTd1xzKs; Wed, 19 Dec 2018 18:03:39 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id CA16985B45;\n\tWed, 19 Dec 2018 18:03:38 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 2A96C1C2A9B\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 19 Dec 2018 18:03:37 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 26BF785B4D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 19 Dec 2018 18:03:37 +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 9-_xzAO83j6q for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 19 Dec 2018 18:03:36 +0000 (UTC)", "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n\tby fraxinus.osuosl.org (Postfix) with ESMTPS id 5A12F85507\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 19 Dec 2018 18:03:36 +0000 (UTC)", "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t19 Dec 2018 10:03:35 -0800", "from shasta.jf.intel.com ([10.166.241.11])\n\tby fmsmga002.fm.intel.com with ESMTP; 19 Dec 2018 10:03:34 -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-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "X-IronPort-AV": "E=Sophos;i=\"5.56,373,1539673200\"; d=\"scan'208\";a=\"127400072\"", "From": "Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 19 Dec 2018 10:03:21 -0800", "Message-Id": "<20181219180334.1104-3-anirudh.venkataramanan@intel.com>", "X-Mailer": "git-send-email 2.14.5", "In-Reply-To": "<20181219180334.1104-1-anirudh.venkataramanan@intel.com>", "References": "<20181219180334.1104-1-anirudh.venkataramanan@intel.com>", "Subject": "[Intel-wired-lan] [PATCH S10 02/15] ice: Refactor a few Tx\n\tscheduler functions", "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\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<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\t<mailto:intel-wired-lan-request@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@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "The following functions were refactored to call a new common function,\nice_aqc_send_sched_elem_cmd():\n\n- ice_aq_add_sched_elems()\n- ice_aq_delete_sched_elems()\n- ice_aq_move_sched_elems()\n- ice_aq_query_sched_elems()\n- ice_aq_cfg_sched_elems()\n- ice_aq_suspend_sched_elems()\n- ice_aq_resume_sched_elems()\n\nSigned-off-by: Greg Priest <greg.priest@intel.com>\nSigned-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 22 ++---\n drivers/net/ethernet/intel/ice/ice_sched.c | 122 +++++++++---------------\n 2 files changed, 53 insertions(+), 91 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h b/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h\nindex fcdcd80b18e7..4c7e3af07254 100644\n--- a/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h\n+++ b/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h\n@@ -657,8 +657,13 @@ struct ice_aqc_get_topo {\n \n /* Update TSE (indirect 0x0403)\n * Get TSE (indirect 0x0404)\n+ * Add TSE (indirect 0x0401)\n+ * Delete TSE (indirect 0x040F)\n+ * Move TSE (indirect 0x0408)\n+ * Suspend Nodes (indirect 0x0409)\n+ * Resume Nodes (indirect 0x040A)\n */\n-struct ice_aqc_get_cfg_elem {\n+struct ice_aqc_sched_elem_cmd {\n \t__le16 num_elem_req;\t/* Used by commands */\n \t__le16 num_elem_resp;\t/* Used by responses */\n \t__le32 reserved;\n@@ -674,18 +679,6 @@ struct ice_aqc_suspend_resume_elem {\n \t__le32 teid[1];\n };\n \n-/* Add TSE (indirect 0x0401)\n- * Delete TSE (indirect 0x040F)\n- * Move TSE (indirect 0x0408)\n- */\n-struct ice_aqc_add_move_delete_elem {\n-\t__le16 num_grps_req;\n-\t__le16 num_grps_updated;\n-\t__le32 reserved;\n-\t__le32 addr_high;\n-\t__le32 addr_low;\n-};\n-\n struct ice_aqc_elem_info_bw {\n \t__le16 bw_profile_idx;\n \t__le16 bw_alloc;\n@@ -1344,9 +1337,8 @@ struct ice_aq_desc {\n \t\tstruct ice_aqc_get_sw_cfg get_sw_conf;\n \t\tstruct ice_aqc_sw_rules sw_rules;\n \t\tstruct ice_aqc_get_topo get_topo;\n-\t\tstruct ice_aqc_get_cfg_elem get_update_elem;\n+\t\tstruct ice_aqc_sched_elem_cmd sched_elem_cmd;\n \t\tstruct ice_aqc_query_txsched_res query_sched_res;\n-\t\tstruct ice_aqc_add_move_delete_elem add_move_delete_elem;\n \t\tstruct ice_aqc_nvm nvm;\n \t\tstruct ice_aqc_pf_vf_msg virt;\n \t\tstruct ice_aqc_get_set_rss_lut get_set_rss_lut;\ndiff --git a/drivers/net/ethernet/intel/ice/ice_sched.c b/drivers/net/ethernet/intel/ice/ice_sched.c\nindex a1681853df2e..99d51990bd54 100644\n--- a/drivers/net/ethernet/intel/ice/ice_sched.c\n+++ b/drivers/net/ethernet/intel/ice/ice_sched.c\n@@ -85,36 +85,58 @@ ice_sched_find_node_by_teid(struct ice_sched_node *start_node, u32 teid)\n }\n \n /**\n- * ice_aq_query_sched_elems - query scheduler elements\n+ * ice_aqc_send_sched_elem_cmd - send scheduling elements cmd\n * @hw: pointer to the hw struct\n- * @elems_req: number of elements to query\n+ * @cmd_opc: cmd opcode\n+ * @elems_req: number of elements to request\n * @buf: pointer to buffer\n * @buf_size: buffer size in bytes\n- * @elems_ret: returns total number of elements returned\n+ * @elems_resp: returns total number of elements response\n * @cd: pointer to command details structure or NULL\n *\n- * Query scheduling elements (0x0404)\n+ * This function sends a scheduling elements cmd (cmd_opc)\n */\n static enum ice_status\n-ice_aq_query_sched_elems(struct ice_hw *hw, u16 elems_req,\n-\t\t\t struct ice_aqc_get_elem *buf, u16 buf_size,\n-\t\t\t u16 *elems_ret, struct ice_sq_cd *cd)\n+ice_aqc_send_sched_elem_cmd(struct ice_hw *hw, enum ice_adminq_opc cmd_opc,\n+\t\t\t u16 elems_req, void *buf, u16 buf_size,\n+\t\t\t u16 *elems_resp, struct ice_sq_cd *cd)\n {\n-\tstruct ice_aqc_get_cfg_elem *cmd;\n+\tstruct ice_aqc_sched_elem_cmd *cmd;\n \tstruct ice_aq_desc desc;\n \tenum ice_status status;\n \n-\tcmd = &desc.params.get_update_elem;\n-\tice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_sched_elems);\n+\tcmd = &desc.params.sched_elem_cmd;\n+\tice_fill_dflt_direct_cmd_desc(&desc, cmd_opc);\n \tcmd->num_elem_req = cpu_to_le16(elems_req);\n \tdesc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);\n \tstatus = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);\n-\tif (!status && elems_ret)\n-\t\t*elems_ret = le16_to_cpu(cmd->num_elem_resp);\n+\tif (!status && elems_resp)\n+\t\t*elems_resp = le16_to_cpu(cmd->num_elem_resp);\n \n \treturn status;\n }\n \n+/**\n+ * ice_aq_query_sched_elems - query scheduler elements\n+ * @hw: pointer to the hw struct\n+ * @elems_req: number of elements to query\n+ * @buf: pointer to buffer\n+ * @buf_size: buffer size in bytes\n+ * @elems_ret: returns total number of elements returned\n+ * @cd: pointer to command details structure or NULL\n+ *\n+ * Query scheduling elements (0x0404)\n+ */\n+static enum ice_status\n+ice_aq_query_sched_elems(struct ice_hw *hw, u16 elems_req,\n+\t\t\t struct ice_aqc_get_elem *buf, u16 buf_size,\n+\t\t\t u16 *elems_ret, struct ice_sq_cd *cd)\n+{\n+\treturn ice_aqc_send_sched_elem_cmd(hw, ice_aqc_opc_get_sched_elems,\n+\t\t\t\t\t elems_req, (void *)buf, buf_size,\n+\t\t\t\t\t elems_ret, cd);\n+}\n+\n /**\n * ice_sched_query_elem - query element information from hw\n * @hw: pointer to the hw struct\n@@ -218,20 +240,9 @@ ice_aq_delete_sched_elems(struct ice_hw *hw, u16 grps_req,\n \t\t\t struct ice_aqc_delete_elem *buf, u16 buf_size,\n \t\t\t u16 *grps_del, struct ice_sq_cd *cd)\n {\n-\tstruct ice_aqc_add_move_delete_elem *cmd;\n-\tstruct ice_aq_desc desc;\n-\tenum ice_status status;\n-\n-\tcmd = &desc.params.add_move_delete_elem;\n-\tice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_delete_sched_elems);\n-\tdesc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);\n-\tcmd->num_grps_req = cpu_to_le16(grps_req);\n-\n-\tstatus = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);\n-\tif (!status && grps_del)\n-\t\t*grps_del = le16_to_cpu(cmd->num_grps_updated);\n-\n-\treturn status;\n+\treturn ice_aqc_send_sched_elem_cmd(hw, ice_aqc_opc_delete_sched_elems,\n+\t\t\t\t\t grps_req, (void *)buf, buf_size,\n+\t\t\t\t\t grps_del, cd);\n }\n \n /**\n@@ -442,52 +453,9 @@ ice_aq_add_sched_elems(struct ice_hw *hw, u16 grps_req,\n \t\t struct ice_aqc_add_elem *buf, u16 buf_size,\n \t\t u16 *grps_added, struct ice_sq_cd *cd)\n {\n-\tstruct ice_aqc_add_move_delete_elem *cmd;\n-\tstruct ice_aq_desc desc;\n-\tenum ice_status status;\n-\n-\tcmd = &desc.params.add_move_delete_elem;\n-\tice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_add_sched_elems);\n-\tdesc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);\n-\n-\tcmd->num_grps_req = cpu_to_le16(grps_req);\n-\tstatus = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);\n-\tif (!status && grps_added)\n-\t\t*grps_added = le16_to_cpu(cmd->num_grps_updated);\n-\n-\treturn status;\n-}\n-\n-/**\n- * ice_suspend_resume_elems - suspend/resume scheduler elements\n- * @hw: pointer to the hw struct\n- * @elems_req: number of elements to suspend\n- * @buf: pointer to buffer\n- * @buf_size: buffer size in bytes\n- * @elems_ret: returns total number of elements suspended\n- * @cd: pointer to command details structure or NULL\n- * @cmd_code: command code for suspend or resume\n- *\n- * suspend/resume scheduler elements\n- */\n-static enum ice_status\n-ice_suspend_resume_elems(struct ice_hw *hw, u16 elems_req,\n-\t\t\t struct ice_aqc_suspend_resume_elem *buf, u16 buf_size,\n-\t\t\t u16 *elems_ret, struct ice_sq_cd *cd,\n-\t\t\t enum ice_adminq_opc cmd_code)\n-{\n-\tstruct ice_aqc_get_cfg_elem *cmd;\n-\tstruct ice_aq_desc desc;\n-\tenum ice_status status;\n-\n-\tcmd = &desc.params.get_update_elem;\n-\tice_fill_dflt_direct_cmd_desc(&desc, cmd_code);\n-\tcmd->num_elem_req = cpu_to_le16(elems_req);\n-\tdesc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);\n-\tstatus = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);\n-\tif (!status && elems_ret)\n-\t\t*elems_ret = le16_to_cpu(cmd->num_elem_resp);\n-\treturn status;\n+\treturn ice_aqc_send_sched_elem_cmd(hw, ice_aqc_opc_add_sched_elems,\n+\t\t\t\t\t grps_req, (void *)buf, buf_size,\n+\t\t\t\t\t grps_added, cd);\n }\n \n /**\n@@ -506,8 +474,9 @@ ice_aq_suspend_sched_elems(struct ice_hw *hw, u16 elems_req,\n \t\t\t struct ice_aqc_suspend_resume_elem *buf,\n \t\t\t u16 buf_size, u16 *elems_ret, struct ice_sq_cd *cd)\n {\n-\treturn ice_suspend_resume_elems(hw, elems_req, buf, buf_size, elems_ret,\n-\t\t\t\t\tcd, ice_aqc_opc_suspend_sched_elems);\n+\treturn ice_aqc_send_sched_elem_cmd(hw, ice_aqc_opc_suspend_sched_elems,\n+\t\t\t\t\t elems_req, (void *)buf, buf_size,\n+\t\t\t\t\t elems_ret, cd);\n }\n \n /**\n@@ -526,8 +495,9 @@ ice_aq_resume_sched_elems(struct ice_hw *hw, u16 elems_req,\n \t\t\t struct ice_aqc_suspend_resume_elem *buf,\n \t\t\t u16 buf_size, u16 *elems_ret, struct ice_sq_cd *cd)\n {\n-\treturn ice_suspend_resume_elems(hw, elems_req, buf, buf_size, elems_ret,\n-\t\t\t\t\tcd, ice_aqc_opc_resume_sched_elems);\n+\treturn ice_aqc_send_sched_elem_cmd(hw, ice_aqc_opc_resume_sched_elems,\n+\t\t\t\t\t elems_req, (void *)buf, buf_size,\n+\t\t\t\t\t elems_ret, cd);\n }\n \n /**\n", "prefixes": [ "S10", "02/15" ] }