Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1227513/?format=api
{ "id": 1227513, "url": "http://patchwork.ozlabs.org/api/patches/1227513/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200122152138.41585-6-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": "<20200122152138.41585-6-anthony.l.nguyen@intel.com>", "list_archive_url": null, "date": "2020-01-22T15:21:29", "name": "[S38,06/15] ice: Add support to enable/disable all Rx queues before waiting", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "52ba8e492a330f9d33fb7bfcf5b4f6f73fbc8661", "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/20200122152138.41585-6-anthony.l.nguyen@intel.com/mbox/", "series": [ { "id": 154777, "url": "http://patchwork.ozlabs.org/api/series/154777/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=154777", "date": "2020-01-22T15:21:26", "name": "[S38,01/15] ice: Add initial support for QinQ", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/154777/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1227513/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1227513/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; spf=pass (sender SPF authorized)\n\tsmtp.mailfrom=osuosl.org (client-ip=140.211.166.133;\n\thelo=hemlock.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 hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\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 4832Lx4ggZz9sRX\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 23 Jan 2020 10:54:33 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 3E2228816B;\n\tWed, 22 Jan 2020 23:54:32 +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 St5nh18pIvfX; Wed, 22 Jan 2020 23:54:29 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 99D8688170;\n\tWed, 22 Jan 2020 23:54:29 +0000 (UTC)", "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id C57191BF988\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 22 Jan 2020 23:54:24 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id BB49081016\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 22 Jan 2020 23:54:24 +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 GmjLf9H-ZlUv for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 22 Jan 2020 23:54:23 +0000 (UTC)", "from mga17.intel.com (mga17.intel.com [192.55.52.151])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id E85E381EAA\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 22 Jan 2020 23:54:22 +0000 (UTC)", "from fmsmga002.fm.intel.com ([10.253.24.26])\n\tby fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t22 Jan 2020 15:54:22 -0800", "from unknown (HELO localhost.jf.intel.com) ([10.166.244.174])\n\tby fmsmga002.fm.intel.com with ESMTP; 22 Jan 2020 15:54:22 -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.70,351,1574150400\"; d=\"scan'208\";a=\"259651615\"", "From": "Tony Nguyen <anthony.l.nguyen@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 22 Jan 2020 07:21:29 -0800", "Message-Id": "<20200122152138.41585-6-anthony.l.nguyen@intel.com>", "X-Mailer": "git-send-email 2.20.1", "In-Reply-To": "<20200122152138.41585-1-anthony.l.nguyen@intel.com>", "References": "<20200122152138.41585-1-anthony.l.nguyen@intel.com>", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [PATCH S38 06/15] ice: Add support to\n\tenable/disable all Rx queues before waiting", "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>", "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\nCurrently when we enable/disable all Rx queues we do the following\nsequence for each Rx queue and then move to the next queue.\n\n1. Enable/Disable the Rx queue via register write.\n2. Read the configuration register to determine if the Rx queue was\nenabled/disabled successfully.\n\nIn some cases enabling/disabling queue 0 fails because of step 2 above.\nFix this by doing step 1 for all of the Rx queues and then step 2 for\nall of the Rx queues.\n\nAlso, there are cases where we enable/disable a single queue (i.e.\nSR-IOV and XDP) so add a new function that does step 1 and 2 above with\na read flush in between.\n\nThis change also required a single Rx queue to be enabled/disabled with\nand without waiting for the change to propagate through hardware. Fix\nthis by adding a boolean wait flag to the necessary functions.\n\nAlso, add the keywords \"one\" and \"all\" to distinguish between\nenabling/disabling a single Rx queue and all Rx queues respectively.\n\nSigned-off-by: Brett Creeley <brett.creeley@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice_base.c | 42 ++++++++++++++-----\n drivers/net/ethernet/intel/ice/ice_base.h | 4 +-\n drivers/net/ethernet/intel/ice/ice_ethtool.c | 4 +-\n drivers/net/ethernet/intel/ice/ice_lib.c | 32 +++++++++-----\n drivers/net/ethernet/intel/ice/ice_lib.h | 4 +-\n drivers/net/ethernet/intel/ice/ice_main.c | 4 +-\n .../net/ethernet/intel/ice/ice_virtchnl_pf.c | 7 ++--\n drivers/net/ethernet/intel/ice/ice_xsk.c | 4 +-\n 8 files changed, 67 insertions(+), 34 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice_base.c b/drivers/net/ethernet/intel/ice/ice_base.c\nindex 81885efadc7a..1c41e7e6d548 100644\n--- a/drivers/net/ethernet/intel/ice/ice_base.c\n+++ b/drivers/net/ethernet/intel/ice/ice_base.c\n@@ -459,17 +459,20 @@ int __ice_vsi_get_qs(struct ice_qs_cfg *qs_cfg)\n }\n \n /**\n- * ice_vsi_ctrl_rx_ring - Start or stop a VSI's Rx ring\n+ * ice_vsi_ctrl_one_rx_ring - start/stop VSI's Rx ring with no busy wait\n * @vsi: the VSI being configured\n- * @ena: start or stop the Rx rings\n- * @rxq_idx: Rx queue index\n+ * @ena: start or stop the Rx ring\n+ * @rxq_idx: 0-based Rx queue index for the VSI passed in\n+ * @wait: wait or don't wait for configuration to finish in hardware\n+ *\n+ * Return 0 on success and negative on error.\n */\n-int ice_vsi_ctrl_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx)\n+int\n+ice_vsi_ctrl_one_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx, bool wait)\n {\n \tint pf_q = vsi->rxq_map[rxq_idx];\n \tstruct ice_pf *pf = vsi->back;\n \tstruct ice_hw *hw = &pf->hw;\n-\tint ret = 0;\n \tu32 rx_reg;\n \n \trx_reg = rd32(hw, QRX_CTRL(pf_q));\n@@ -485,13 +488,30 @@ int ice_vsi_ctrl_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx)\n \t\trx_reg &= ~QRX_CTRL_QENA_REQ_M;\n \twr32(hw, QRX_CTRL(pf_q), rx_reg);\n \n-\t/* wait for the change to finish */\n-\tret = ice_pf_rxq_wait(pf, pf_q, ena);\n-\tif (ret)\n-\t\tdev_err(ice_pf_to_dev(pf), \"VSI idx %d Rx ring %d %sable timeout\\n\",\n-\t\t\tvsi->idx, pf_q, (ena ? \"en\" : \"dis\"));\n+\tif (!wait)\n+\t\treturn 0;\n+\n+\tice_flush(hw);\n+\treturn ice_pf_rxq_wait(pf, pf_q, ena);\n+}\n \n-\treturn ret;\n+/**\n+ * ice_vsi_wait_one_rx_ring - wait for a VSI's Rx ring to be stopped/started\n+ * @vsi: the VSI being configured\n+ * @ena: true/false to verify Rx ring has been enabled/disabled respectively\n+ * @rxq_idx: 0-based Rx queue index for the VSI passed in\n+ *\n+ * This routine will wait for the given Rx queue of the VSI to reach the\n+ * enabled or disabled state. Returns -ETIMEDOUT in case of failing to reach\n+ * the requested state after multiple retries; else will return 0 in case of\n+ * success.\n+ */\n+int ice_vsi_wait_one_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx)\n+{\n+\tint pf_q = vsi->rxq_map[rxq_idx];\n+\tstruct ice_pf *pf = vsi->back;\n+\n+\treturn ice_pf_rxq_wait(pf, pf_q, ena);\n }\n \n /**\ndiff --git a/drivers/net/ethernet/intel/ice/ice_base.h b/drivers/net/ethernet/intel/ice/ice_base.h\nindex 407995e8e944..44efdb627043 100644\n--- a/drivers/net/ethernet/intel/ice/ice_base.h\n+++ b/drivers/net/ethernet/intel/ice/ice_base.h\n@@ -8,7 +8,9 @@\n \n int ice_setup_rx_ctx(struct ice_ring *ring);\n int __ice_vsi_get_qs(struct ice_qs_cfg *qs_cfg);\n-int ice_vsi_ctrl_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx);\n+int\n+ice_vsi_ctrl_one_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx, bool wait);\n+int ice_vsi_wait_one_rx_ring(struct ice_vsi *vsi, bool ena, u16 rxq_idx);\n int ice_vsi_alloc_q_vectors(struct ice_vsi *vsi);\n void ice_vsi_map_rings_to_vectors(struct ice_vsi *vsi);\n void ice_vsi_free_q_vectors(struct ice_vsi *vsi);\ndiff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c b/drivers/net/ethernet/intel/ice/ice_ethtool.c\nindex c0f58e08890e..8da99e576d4e 100644\n--- a/drivers/net/ethernet/intel/ice/ice_ethtool.c\n+++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c\n@@ -462,7 +462,7 @@ static int ice_lbtest_prepare_rings(struct ice_vsi *vsi)\n \tif (status)\n \t\tgoto err_setup_rx_ring;\n \n-\tstatus = ice_vsi_start_rx_rings(vsi);\n+\tstatus = ice_vsi_start_all_rx_rings(vsi);\n \tif (status)\n \t\tgoto err_start_rx_ring;\n \n@@ -494,7 +494,7 @@ static int ice_lbtest_disable_rings(struct ice_vsi *vsi)\n \t\tnetdev_err(vsi->netdev, \"Failed to stop Tx rings, VSI %d error %d\\n\",\n \t\t\t vsi->vsi_num, status);\n \n-\tstatus = ice_vsi_stop_rx_rings(vsi);\n+\tstatus = ice_vsi_stop_all_rx_rings(vsi);\n \tif (status)\n \t\tnetdev_err(vsi->netdev, \"Failed to stop Rx rings, VSI %d error %d\\n\",\n \t\t\t vsi->vsi_num, status);\ndiff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c\nindex 3d851ac489cf..7e927576fcf0 100644\n--- a/drivers/net/ethernet/intel/ice/ice_lib.c\n+++ b/drivers/net/ethernet/intel/ice/ice_lib.c\n@@ -26,16 +26,26 @@ const char *ice_vsi_type_str(enum ice_vsi_type type)\n }\n \n /**\n- * ice_vsi_ctrl_rx_rings - Start or stop a VSI's Rx rings\n+ * ice_vsi_ctrl_all_rx_rings - Start or stop a VSI's Rx rings\n * @vsi: the VSI being configured\n * @ena: start or stop the Rx rings\n+ *\n+ * First enable/disable all of the Rx rings, flush any remaining writes, and\n+ * then verify that they have all been enabled/disabled successfully. This will\n+ * let all of the register writes complete when enabling/disabling the Rx rings\n+ * before waiting for the change in hardware to complete.\n */\n-static int ice_vsi_ctrl_rx_rings(struct ice_vsi *vsi, bool ena)\n+static int ice_vsi_ctrl_all_rx_rings(struct ice_vsi *vsi, bool ena)\n {\n \tint i, ret = 0;\n \n+\tfor (i = 0; i < vsi->num_rxq; i++)\n+\t\tice_vsi_ctrl_one_rx_ring(vsi, ena, i, false);\n+\n+\tice_flush(&vsi->back->hw);\n+\n \tfor (i = 0; i < vsi->num_rxq; i++) {\n-\t\tret = ice_vsi_ctrl_rx_ring(vsi, ena, i);\n+\t\tret = ice_vsi_wait_one_rx_ring(vsi, ena, i);\n \t\tif (ret)\n \t\t\tbreak;\n \t}\n@@ -1717,25 +1727,25 @@ int ice_vsi_manage_vlan_stripping(struct ice_vsi *vsi, bool ena)\n }\n \n /**\n- * ice_vsi_start_rx_rings - start VSI's Rx rings\n- * @vsi: the VSI whose rings are to be started\n+ * ice_vsi_start_all_rx_rings - start/enable all of a VSI's Rx rings\n+ * @vsi: the VSI whose rings are to be enabled\n *\n * Returns 0 on success and a negative value on error\n */\n-int ice_vsi_start_rx_rings(struct ice_vsi *vsi)\n+int ice_vsi_start_all_rx_rings(struct ice_vsi *vsi)\n {\n-\treturn ice_vsi_ctrl_rx_rings(vsi, true);\n+\treturn ice_vsi_ctrl_all_rx_rings(vsi, true);\n }\n \n /**\n- * ice_vsi_stop_rx_rings - stop VSI's Rx rings\n- * @vsi: the VSI\n+ * ice_vsi_stop_all_rx_rings - stop/disable all of a VSI's Rx rings\n+ * @vsi: the VSI whose rings are to be disabled\n *\n * Returns 0 on success and a negative value on error\n */\n-int ice_vsi_stop_rx_rings(struct ice_vsi *vsi)\n+int ice_vsi_stop_all_rx_rings(struct ice_vsi *vsi)\n {\n-\treturn ice_vsi_ctrl_rx_rings(vsi, false);\n+\treturn ice_vsi_ctrl_all_rx_rings(vsi, false);\n }\n \n /**\ndiff --git a/drivers/net/ethernet/intel/ice/ice_lib.h b/drivers/net/ethernet/intel/ice/ice_lib.h\nindex b1e131c44e52..a83856f8e12b 100644\n--- a/drivers/net/ethernet/intel/ice/ice_lib.h\n+++ b/drivers/net/ethernet/intel/ice/ice_lib.h\n@@ -32,9 +32,9 @@ int ice_vsi_manage_vlan_insertion(struct ice_vsi *vsi);\n \n int ice_vsi_manage_vlan_stripping(struct ice_vsi *vsi, bool ena);\n \n-int ice_vsi_start_rx_rings(struct ice_vsi *vsi);\n+int ice_vsi_start_all_rx_rings(struct ice_vsi *vsi);\n \n-int ice_vsi_stop_rx_rings(struct ice_vsi *vsi);\n+int ice_vsi_stop_all_rx_rings(struct ice_vsi *vsi);\n \n int\n ice_vsi_stop_lan_tx_rings(struct ice_vsi *vsi, enum ice_disq_rst_src rst_src,\ndiff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c\nindex 4f20add0c5e3..8816ac1ec573 100644\n--- a/drivers/net/ethernet/intel/ice/ice_main.c\n+++ b/drivers/net/ethernet/intel/ice/ice_main.c\n@@ -4031,7 +4031,7 @@ static int ice_up_complete(struct ice_vsi *vsi)\n \t * Tx queue group list was configured and the context bits were\n \t * programmed using ice_vsi_cfg_txqs\n \t */\n-\terr = ice_vsi_start_rx_rings(vsi);\n+\terr = ice_vsi_start_all_rx_rings(vsi);\n \tif (err)\n \t\treturn err;\n \n@@ -4410,7 +4410,7 @@ int ice_down(struct ice_vsi *vsi)\n \t\t\t\t vsi->vsi_num, tx_err);\n \t}\n \n-\trx_err = ice_vsi_stop_rx_rings(vsi);\n+\trx_err = ice_vsi_stop_all_rx_rings(vsi);\n \tif (rx_err)\n \t\tnetdev_err(vsi->netdev, \"Failed stop Rx rings, VSI %d error %d\\n\",\n \t\t\t vsi->vsi_num, rx_err);\ndiff --git a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\nindex 993bc89c920e..cc5d9ed5e4ec 100644\n--- a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\n+++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\n@@ -271,7 +271,7 @@ static void ice_dis_vf_qs(struct ice_vf *vf)\n \tvsi = pf->vsi[vf->lan_vsi_idx];\n \n \tice_vsi_stop_lan_tx_rings(vsi, ICE_NO_RESET, vf->vf_id);\n-\tice_vsi_stop_rx_rings(vsi);\n+\tice_vsi_stop_all_rx_rings(vsi);\n \tice_set_vf_state_qs_dis(vf);\n }\n \n@@ -2026,7 +2026,7 @@ static int ice_vc_ena_qs_msg(struct ice_vf *vf, u8 *msg)\n \t\tif (test_bit(vf_q_id, vf->rxq_ena))\n \t\t\tcontinue;\n \n-\t\tif (ice_vsi_ctrl_rx_ring(vsi, true, vf_q_id)) {\n+\t\tif (ice_vsi_ctrl_one_rx_ring(vsi, true, vf_q_id, true)) {\n \t\t\tdev_err(ice_pf_to_dev(vsi->back), \"Failed to enable Rx ring %d on VSI %d\\n\",\n \t\t\t\tvf_q_id, vsi->vsi_num);\n \t\t\tv_ret = VIRTCHNL_STATUS_ERR_PARAM;\n@@ -2154,7 +2154,8 @@ static int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)\n \t\t\tif (!test_bit(vf_q_id, vf->rxq_ena))\n \t\t\t\tcontinue;\n \n-\t\t\tif (ice_vsi_ctrl_rx_ring(vsi, false, vf_q_id)) {\n+\t\t\tif (ice_vsi_ctrl_one_rx_ring(vsi, false, vf_q_id,\n+\t\t\t\t\t\t true)) {\n \t\t\t\tdev_err(ice_pf_to_dev(vsi->back), \"Failed to stop Rx ring %d on VSI %d\\n\",\n \t\t\t\t\tvf_q_id, vsi->vsi_num);\n \t\t\t\tv_ret = VIRTCHNL_STATUS_ERR_PARAM;\ndiff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c\nindex 4d3407bbd4c4..fd96301e59bb 100644\n--- a/drivers/net/ethernet/intel/ice/ice_xsk.c\n+++ b/drivers/net/ethernet/intel/ice/ice_xsk.c\n@@ -183,7 +183,7 @@ static int ice_qp_dis(struct ice_vsi *vsi, u16 q_idx)\n \t\tif (err)\n \t\t\treturn err;\n \t}\n-\terr = ice_vsi_ctrl_rx_ring(vsi, false, q_idx);\n+\terr = ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, true);\n \tif (err)\n \t\treturn err;\n \n@@ -243,7 +243,7 @@ static int ice_qp_ena(struct ice_vsi *vsi, u16 q_idx)\n \n \tice_qvec_cfg_msix(vsi, q_vector);\n \n-\terr = ice_vsi_ctrl_rx_ring(vsi, true, q_idx);\n+\terr = ice_vsi_ctrl_one_rx_ring(vsi, true, q_idx, true);\n \tif (err)\n \t\tgoto free_buf;\n \n", "prefixes": [ "S38", "06/15" ] }