Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/653463/?format=api
{ "id": 653463, "url": "http://patchwork.ozlabs.org/api/patches/653463/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1469646161-30024-7-git-send-email-bimmy.pujari@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": "<1469646161-30024-7-git-send-email-bimmy.pujari@intel.com>", "list_archive_url": null, "date": "2016-07-27T19:02:35", "name": "[next,S40-V2,06/12] i40e: don't allow reduction of channels below active FD rules", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "2257c8c901ebbb0e0e3acbd2771103efdfb9608b", "submitter": { "id": 68919, "url": "http://patchwork.ozlabs.org/api/people/68919/?format=api", "name": "Pujari, Bimmy", "email": "bimmy.pujari@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/1469646161-30024-7-git-send-email-bimmy.pujari@intel.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/653463/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/653463/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\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3s04BN1Ygpz9t1r\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 28 Jul 2016 05:02:52 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id B8B2231291;\n\tWed, 27 Jul 2016 19:02:50 +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 dnL7hs3XX2Rq; Wed, 27 Jul 2016 19:02:46 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 107A8312C5;\n\tWed, 27 Jul 2016 19:02:41 +0000 (UTC)", "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id 16A791C1774\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 27 Jul 2016 19:02:35 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 0892C3127A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 27 Jul 2016 19:02:35 +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 xzFNHi9gVOjY for <intel-wired-lan@lists.osuosl.org>;\n\tWed, 27 Jul 2016 19:02:30 +0000 (UTC)", "from mga03.intel.com (mga03.intel.com [134.134.136.65])\n\tby silver.osuosl.org (Postfix) with ESMTP id C661631035\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tWed, 27 Jul 2016 19:02:29 +0000 (UTC)", "from orsmga003.jf.intel.com ([10.7.209.27])\n\tby orsmga103.jf.intel.com with ESMTP; 27 Jul 2016 12:02:08 -0700", "from bimmy.jf.intel.com (HELO bimmy.linux1.jf.intel.com)\n\t([134.134.2.177])\n\tby orsmga003.jf.intel.com with ESMTP; 27 Jul 2016 12:02:08 -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.28,430,1464678000\"; d=\"scan'208\";a=\"854735007\"", "From": "Bimmy Pujari <bimmy.pujari@intel.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Wed, 27 Jul 2016 12:02:35 -0700", "Message-Id": "<1469646161-30024-7-git-send-email-bimmy.pujari@intel.com>", "X-Mailer": "git-send-email 2.4.11", "In-Reply-To": "<1469646161-30024-1-git-send-email-bimmy.pujari@intel.com>", "References": "<1469646161-30024-1-git-send-email-bimmy.pujari@intel.com>", "Subject": "[Intel-wired-lan] [next PATCH S40-V2 06/12] i40e: don't allow\n\treduction of channels below active FD rules", "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": "From: Jacob Keller <jacob.e.keller@intel.com>\n\nIf a driver is unable to maintain all current user supplied settings\nfrom ethtool (or other sources), it is not ok for a user request to\nsucceed and silently trample over previous configuration.\n\nTo that end, if you change the number of channels, it must not be\nallowed to reduce the number of channels (queues) below the current\nflow director filter rules targets. In this case, return -EINVAL when\na request to reduce the number of channels would do so. In addition\nlog a warning to the kernel buffer explaining why we failed, and report\nthe rules which prevent us from lowering the number of channels.\n\nSigned-off-by: Jacob Keller <jacob.e.keller@intel.com>\nChange-ID: If41464d63d7aab11cedf09e4f3aa1a69e21ffd88\n---\n drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 24 ++++++++++++++++++++++++\n 1 file changed, 24 insertions(+)", "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\nindex e7613b2..1a06af9 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_ethtool.c\n@@ -2860,11 +2860,15 @@ static void i40e_get_channels(struct net_device *dev,\n static int i40e_set_channels(struct net_device *dev,\n \t\t\t struct ethtool_channels *ch)\n {\n+\tconst u8 drop = I40E_FILTER_PROGRAM_DESC_DEST_DROP_PACKET;\n \tstruct i40e_netdev_priv *np = netdev_priv(dev);\n \tunsigned int count = ch->combined_count;\n \tstruct i40e_vsi *vsi = np->vsi;\n \tstruct i40e_pf *pf = vsi->back;\n+\tstruct i40e_fdir_filter *rule;\n+\tstruct hlist_node *node2;\n \tint new_count;\n+\tint err = 0;\n \n \t/* We do not support setting channels for any other VSI at present */\n \tif (vsi->type != I40E_VSI_MAIN)\n@@ -2882,6 +2886,26 @@ static int i40e_set_channels(struct net_device *dev,\n \tif (count > i40e_max_channels(vsi))\n \t\treturn -EINVAL;\n \n+\t/* verify that the number of channels does not invalidate any current\n+\t * flow director rules\n+\t */\n+\thlist_for_each_entry_safe(rule, node2,\n+\t\t\t\t &pf->fdir_filter_list, fdir_node) {\n+\t\tif (rule->dest_ctl != drop && count <= rule->q_index) {\n+\t\t\tdev_warn(&pf->pdev->dev,\n+\t\t\t\t \"Existing user defined filter %d assigns flow to queue %d\\n\",\n+\t\t\t\t rule->fd_id, rule->q_index);\n+\t\t\terr = -EINVAL;\n+\t\t}\n+\t}\n+\n+\tif (err) {\n+\t\tdev_err(&pf->pdev->dev,\n+\t\t\t\"Existing filter rules must be deleted to reduce combined channel count to %d\\n\",\n+\t\t\tcount);\n+\t\treturn err;\n+\t}\n+\n \t/* update feature limits from largest to smallest supported values */\n \t/* TODO: Flow director limit, DCB etc */\n \n", "prefixes": [ "next", "S40-V2", "06/12" ] }