Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1227512/?format=api
{ "id": 1227512, "url": "http://patchwork.ozlabs.org/api/patches/1227512/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20200122152138.41585-10-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-10-anthony.l.nguyen@intel.com>", "list_archive_url": null, "date": "2020-01-22T15:21:33", "name": "[S38,10/15] ice: Fix virtchnl_queue_select bitmap validation", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "f8a0c7fc82f8afc834273478d05ed27c3a0707aa", "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-10-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/1227512/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1227512/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.138;\n\thelo=whitealder.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 whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\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 4832Lw43hKz9sR0\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 23 Jan 2020 10:54:32 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id E74938303A;\n\tWed, 22 Jan 2020 23:54:30 +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 WeGrcxLw4ljv; Wed, 22 Jan 2020 23:54:28 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id A48E586294;\n\tWed, 22 Jan 2020 23:54:28 +0000 (UTC)", "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\tby ash.osuosl.org (Postfix) with ESMTP id 16CB11BF281\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 fraxinus.osuosl.org (Postfix) with ESMTP id 0A416822C2\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 22 Jan 2020 23:54:24 +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 OrnQJZtlhi50 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 fraxinus.osuosl.org (Postfix) with ESMTPS id 3E74D81A67\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 22 Jan 2020 23:54:23 +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=\"259651619\"", "From": "Tony Nguyen <anthony.l.nguyen@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 22 Jan 2020 07:21:33 -0800", "Message-Id": "<20200122152138.41585-10-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 10/15] ice: Fix virtchnl_queue_select\n\tbitmap validation", "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 in ice_vc_ena_qs_msg() we are incorrectly validating the\nvirtchnl queue select bitmaps. The virtchnl_queue_select rx_queues and\ntx_queue bitmap is being compared against ICE_MAX_BASE_QS_PER_VF, but\nthe problem is that these bitmaps can have a value greater than\nICE_MAX_BASE_QS_PER_VF. Fix this by comparing the bitmaps against\nBIT(ICE_MAX_BASE_QS_PER_VF).\n\nAlso, add the function ice_vc_validate_vqs_bitmaps() that checks to see\nif both virtchnl_queue_select bitmaps are empty along with checking that\nthe bitmaps only have valid bits set. This function can then be used in\nboth the queue enable and disable flows.\n\nArkady Gilinksky's patch on the intel-wired-lan mailing list\n(\"i40e/iavf: Fix msg interface between VF and PF\") made me\naware of this issue.\n\nSigned-off-by: Brett Creeley <brett.creeley@intel.com>\n---\n .../net/ethernet/intel/ice/ice_virtchnl_pf.c | 26 +++++++++++++------\n 1 file changed, 18 insertions(+), 8 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 5513ee42de3c..7d778b3d5d5a 100644\n--- a/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\n+++ b/drivers/net/ethernet/intel/ice/ice_virtchnl_pf.c\n@@ -2045,6 +2045,22 @@ static int ice_vc_get_stats_msg(struct ice_vf *vf, u8 *msg)\n \t\t\t\t (u8 *)&stats, sizeof(stats));\n }\n \n+/**\n+ * ice_vc_validate_vqs_bitmaps - validate Rx/Tx queue bitmaps from VIRTCHNL\n+ * @vqs: virtchnl_queue_select structure containing bitmaps to validate\n+ *\n+ * Return true on successful validation, else false\n+ */\n+static bool ice_vc_validate_vqs_bitmaps(struct virtchnl_queue_select *vqs)\n+{\n+\tif ((!vqs->rx_queues && !vqs->tx_queues) ||\n+\t vqs->rx_queues >= BIT(ICE_MAX_BASE_QS_PER_VF) ||\n+\t vqs->tx_queues >= BIT(ICE_MAX_BASE_QS_PER_VF))\n+\t\treturn false;\n+\n+\treturn true;\n+}\n+\n /**\n * ice_vc_ena_qs_msg\n * @vf: pointer to the VF info\n@@ -2072,13 +2088,7 @@ static int ice_vc_ena_qs_msg(struct ice_vf *vf, u8 *msg)\n \t\tgoto error_param;\n \t}\n \n-\tif (!vqs->rx_queues && !vqs->tx_queues) {\n-\t\tv_ret = VIRTCHNL_STATUS_ERR_PARAM;\n-\t\tgoto error_param;\n-\t}\n-\n-\tif (vqs->rx_queues > ICE_MAX_BASE_QS_PER_VF ||\n-\t vqs->tx_queues > ICE_MAX_BASE_QS_PER_VF) {\n+\tif (!ice_vc_validate_vqs_bitmaps(vqs)) {\n \t\tv_ret = VIRTCHNL_STATUS_ERR_PARAM;\n \t\tgoto error_param;\n \t}\n@@ -2168,7 +2178,7 @@ static int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)\n \t\tgoto error_param;\n \t}\n \n-\tif (!vqs->rx_queues && !vqs->tx_queues) {\n+\tif (!ice_vc_validate_vqs_bitmaps(vqs)) {\n \t\tv_ret = VIRTCHNL_STATUS_ERR_PARAM;\n \t\tgoto error_param;\n \t}\n", "prefixes": [ "S38", "10/15" ] }