Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/531499/?format=api
{ "id": 531499, "url": "http://patchwork.ozlabs.org/api/patches/531499/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1445018231-3196-3-git-send-email-jacob.e.keller@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": "<1445018231-3196-3-git-send-email-jacob.e.keller@intel.com>", "list_archive_url": null, "date": "2015-10-16T17:56:57", "name": "[next-queue,v5,03/17] fm10k: reset max_queues on init_hw_vf failure", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "022dafb10fe77e6f049fcb225f4b4157936fbb44", "submitter": { "id": 9784, "url": "http://patchwork.ozlabs.org/api/people/9784/?format=api", "name": "Jacob Keller", "email": "jacob.e.keller@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/1445018231-3196-3-git-send-email-jacob.e.keller@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/531499/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/531499/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 silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id D88F11402B2\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 17 Oct 2015 04:57:18 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 11B4D30BEE;\n\tFri, 16 Oct 2015 17:57:18 +0000 (UTC)", "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id S9D6QoJL-q47; Fri, 16 Oct 2015 17:57:16 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 5A70B27481;\n\tFri, 16 Oct 2015 17:57:16 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 8F4A71C16C8\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 16 Oct 2015 17:57:14 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 8A25F93994\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 16 Oct 2015 17:57:14 +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 L83tHl9-8756 for <intel-wired-lan@lists.osuosl.org>;\n\tFri, 16 Oct 2015 17:57:13 +0000 (UTC)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id BC73C8AE7C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 16 Oct 2015 17:57:13 +0000 (UTC)", "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby orsmga103.jf.intel.com with ESMTP; 16 Oct 2015 10:57:13 -0700", "from jekeller-desk.amr.corp.intel.com ([134.134.3.123])\n\tby fmsmga001.fm.intel.com with ESMTP; 16 Oct 2015 10:57:14 -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.17,689,1437462000\"; d=\"scan'208\";a=\"812781738\"", "From": "Jacob Keller <jacob.e.keller@intel.com>", "To": "Intel Wired LAN <intel-wired-lan@lists.osuosl.org>", "Date": "Fri, 16 Oct 2015 10:56:57 -0700", "Message-Id": "<1445018231-3196-3-git-send-email-jacob.e.keller@intel.com>", "X-Mailer": "git-send-email 2.6.1.264.gbab76a9", "In-Reply-To": "<1445018231-3196-1-git-send-email-jacob.e.keller@intel.com>", "References": "<1445018231-3196-1-git-send-email-jacob.e.keller@intel.com>", "Subject": "[Intel-wired-lan] [next-queue v5 03/17] fm10k: reset max_queues on\n\tinit_hw_vf failure", "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": "VF drivers must detect how many queues are available. Previously, the\ndriver assumed that each VF has at minimum 1 queue. This assumption is\nincorrect, since it is possible that the PF has not yet assigned the\nqueues to the VF by the time the VF checks. To resolve this, we added a\ncheck first to ensure that the first queue is infact owned by the VF at\ninit_hw_vf time. However, the code flow did not reset hw->mac.max_queues\nto 0. In some cases, such as during reinit flows, we call init_hw_vf\nwithout clearing the previous value of hw->mac.max_queues. Due to this,\nwhen init_hw_vf errors out, if its error code is not properly handled\nthe VF driver may still believe it has queues which no longer belong to\nit. Fix this by clearing the hw->mac.max_queues on exit due to errors.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\n---\n drivers/net/ethernet/intel/fm10k/fm10k_vf.c | 13 ++++++++++---\n 1 file changed, 10 insertions(+), 3 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_vf.c b/drivers/net/ethernet/intel/fm10k/fm10k_vf.c\nindex 3a18ef1cc017..d512575c33f3 100644\n--- a/drivers/net/ethernet/intel/fm10k/fm10k_vf.c\n+++ b/drivers/net/ethernet/intel/fm10k/fm10k_vf.c\n@@ -105,8 +105,10 @@ static s32 fm10k_init_hw_vf(struct fm10k_hw *hw)\n \n \t/* verify we have at least 1 queue */\n \tif (!~fm10k_read_reg(hw, FM10K_TXQCTL(0)) ||\n-\t !~fm10k_read_reg(hw, FM10K_RXQCTL(0)))\n-\t\treturn FM10K_ERR_NO_RESOURCES;\n+\t !~fm10k_read_reg(hw, FM10K_RXQCTL(0))) {\n+\t\terr = FM10K_ERR_NO_RESOURCES;\n+\t\tgoto reset_max_queues;\n+\t}\n \n \t/* determine how many queues we have */\n \tfor (i = 1; tqdloc0 && (i < FM10K_MAX_QUEUES_POOL); i++) {\n@@ -124,7 +126,7 @@ static s32 fm10k_init_hw_vf(struct fm10k_hw *hw)\n \t/* shut down queues we own and reset DMA configuration */\n \terr = fm10k_disable_queues_generic(hw, i);\n \tif (err)\n-\t\treturn err;\n+\t\tgoto reset_max_queues;\n \n \t/* record maximum queue count */\n \thw->mac.max_queues = i;\n@@ -134,6 +136,11 @@ static s32 fm10k_init_hw_vf(struct fm10k_hw *hw)\n \t\t\t FM10K_TXQCTL_VID_MASK) >> FM10K_TXQCTL_VID_SHIFT;\n \n \treturn 0;\n+\n+reset_max_queues:\n+\thw->mac.max_queues = 0;\n+\n+\treturn err;\n }\n \n /* This structure defines the attibutes to be parsed below */\n", "prefixes": [ "next-queue", "v5", "03/17" ] }