Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/706128/?format=api
{ "id": 706128, "url": "http://patchwork.ozlabs.org/api/patches/706128/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/1aee550aa286aa44265236441b42f8aab77ae864.1481796580.git.pabeni@redhat.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": "<1aee550aa286aa44265236441b42f8aab77ae864.1481796580.git.pabeni@redhat.com>", "list_archive_url": null, "date": "2016-12-15T14:20:34", "name": "[net] ixgbe: update the rss key on h/w, when ethtool ask for it.", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "adb2f734c05b85ce14dd3e2f790ebc28aecae3ff", "submitter": { "id": 67312, "url": "http://patchwork.ozlabs.org/api/people/67312/?format=api", "name": "Paolo Abeni", "email": "pabeni@redhat.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/1aee550aa286aa44265236441b42f8aab77ae864.1481796580.git.pabeni@redhat.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/706128/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/706128/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 3tfbGb5KpVz9t0G\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 16 Dec 2016 01:21:26 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 3045523067;\n\tThu, 15 Dec 2016 14:21:25 +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 dokhzTupwC72; Thu, 15 Dec 2016 14:21:23 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 543BD22FA7;\n\tThu, 15 Dec 2016 14:21:23 +0000 (UTC)", "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id EB8E21C0155\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 15 Dec 2016 14:21:21 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id E6E42822EE\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 15 Dec 2016 14:21:21 +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 T53nYBDMKx0c for <intel-wired-lan@lists.osuosl.org>;\n\tThu, 15 Dec 2016 14:21:21 +0000 (UTC)", "from mx1.redhat.com (mx1.redhat.com [209.132.183.28])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id 47FD2821E5\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tThu, 15 Dec 2016 14:21:21 +0000 (UTC)", "from int-mx10.intmail.prod.int.phx2.redhat.com\n\t(int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id A091B81231;\n\tThu, 15 Dec 2016 14:21:20 +0000 (UTC)", "from dhcp-176-88.mxp.redhat.com (vpn-48-78.rdu2.redhat.com\n\t[10.10.48.78])\n\tby int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with\n\tESMTP id uBFELIn5026205; Thu, 15 Dec 2016 09:21:19 -0500" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": [ "domain auto-whitelisted by SQLgrey-1.7.6", "Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.25]); Thu, 15 Dec 2016 14:21:20 +0000 (UTC)" ], "From": "Paolo Abeni <pabeni@redhat.com>", "To": "netdev@vger.kernel.org", "Date": "Thu, 15 Dec 2016 15:20:34 +0100", "Message-Id": "<1aee550aa286aa44265236441b42f8aab77ae864.1481796580.git.pabeni@redhat.com>", "X-Scanned-By": "MIMEDefang 2.68 on 10.5.11.23", "Cc": "intel-wired-lan@lists.osuosl.org", "Subject": "[Intel-wired-lan] [PATCH net] ixgbe: update the rss key on h/w,\n\twhen ethtool ask for it.", "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": "Currently ixgbe_set_rxfh() updates the rss_key copy in the driver\nmemory, but does not push the new value into the h/w. This commit\nadd a new helper for the latter operation and call it in\nixgbe_set_rxfh(), so that the h/w rss key value can be really\nupdated via ethtool.\n\nSigned-off-by: Paolo Abeni <pabeni@redhat.com>\n---\n drivers/net/ethernet/intel/ixgbe/ixgbe.h | 1 +\n drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 4 +++-\n drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 19 ++++++++++++++++---\n 3 files changed, 20 insertions(+), 4 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h\nindex ef81c3d..8fb9fbf 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h\n@@ -1026,6 +1026,7 @@ netdev_tx_t ixgbe_xmit_frame_ring(struct sk_buff *skb,\n \t\t\t\t struct ixgbe_adapter *adapter,\n \t\t\t\t struct ixgbe_ring *tx_ring);\n u32 ixgbe_rss_indir_tbl_entries(struct ixgbe_adapter *adapter);\n+void ixgbe_store_key(struct ixgbe_adapter *adapter);\n void ixgbe_store_reta(struct ixgbe_adapter *adapter);\n s32 ixgbe_negotiate_fc(struct ixgbe_hw *hw, u32 adv_reg, u32 lp_reg,\n \t\t u32 adv_sym, u32 adv_asm, u32 lp_sym, u32 lp_asm);\ndiff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c\nindex fd192bf..e40f9ce 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c\n@@ -3003,8 +3003,10 @@ static int ixgbe_set_rxfh(struct net_device *netdev, const u32 *indir,\n \t}\n \n \t/* Fill out the rss hash key */\n-\tif (key)\n+\tif (key) {\n \t\tmemcpy(adapter->rss_key, key, ixgbe_get_rxfh_key_size(netdev));\n+\t\tixgbe_store_key(adapter);\n+\t}\n \n \tixgbe_store_reta(adapter);\n \ndiff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\nindex 1e2f39e..0c23ab8 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c\n@@ -3411,6 +3411,21 @@ u32 ixgbe_rss_indir_tbl_entries(struct ixgbe_adapter *adapter)\n }\n \n /**\n+ * ixgbe_store_key - Write the RSS key to HW\n+ * @adapter: device handle\n+ *\n+ * Write the RSS key stored in adapter.rss_key to HW.\n+ */\n+void ixgbe_store_key(struct ixgbe_adapter *adapter)\n+{\n+\tstruct ixgbe_hw *hw = &adapter->hw;\n+\tint i;\n+\n+\tfor (i = 0; i < 10; i++)\n+\t\tIXGBE_WRITE_REG(hw, IXGBE_RSSRK(i), adapter->rss_key[i]);\n+}\n+\n+/**\n * ixgbe_store_reta - Write the RETA table to HW\n * @adapter: device handle\n *\n@@ -3475,7 +3490,6 @@ static void ixgbe_store_vfreta(struct ixgbe_adapter *adapter)\n \n static void ixgbe_setup_reta(struct ixgbe_adapter *adapter)\n {\n-\tstruct ixgbe_hw *hw = &adapter->hw;\n \tu32 i, j;\n \tu32 reta_entries = ixgbe_rss_indir_tbl_entries(adapter);\n \tu16 rss_i = adapter->ring_feature[RING_F_RSS].indices;\n@@ -3488,8 +3502,7 @@ static void ixgbe_setup_reta(struct ixgbe_adapter *adapter)\n \t\trss_i = 4;\n \n \t/* Fill out hash function seeds */\n-\tfor (i = 0; i < 10; i++)\n-\t\tIXGBE_WRITE_REG(hw, IXGBE_RSSRK(i), adapter->rss_key[i]);\n+\tixgbe_store_key(adapter);\n \n \t/* Fill out redirection table */\n \tmemset(adapter->rss_indir_tbl, 0, sizeof(adapter->rss_indir_tbl));\n", "prefixes": [ "net" ] }