Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2191175/?format=api
{ "id": 2191175, "url": "http://patchwork.ozlabs.org/api/patches/2191175/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260131163037.88108-2-kohei@enjuk.jp/", "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": "<20260131163037.88108-2-kohei@enjuk.jp>", "list_archive_url": null, "date": "2026-01-31T16:29:36", "name": "[v2,iwl-next,1/3] igc: prepare for RSS key get/set support", "commit_ref": null, "pull_url": null, "state": "under-review", "archived": false, "hash": "86bac823f1bff5bc2fef8fb80dca77ac5347e1bb", "submitter": { "id": 92459, "url": "http://patchwork.ozlabs.org/api/people/92459/?format=api", "name": "Kohei Enju", "email": "kohei@enjuk.jp" }, "delegate": { "id": 109701, "url": "http://patchwork.ozlabs.org/api/users/109701/?format=api", "username": "anguy11", "first_name": "Anthony", "last_name": "Nguyen", "email": "anthony.l.nguyen@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260131163037.88108-2-kohei@enjuk.jp/mbox/", "series": [ { "id": 490492, "url": "http://patchwork.ozlabs.org/api/series/490492/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=490492", "date": "2026-01-31T16:29:35", "name": "igc: add RSS key get/set support", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/490492/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2191175/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2191175/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@legolas.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=osuosl.org header.i=@osuosl.org header.a=rsa-sha256\n header.s=default header.b=MLTLC9SF;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)" ], "Received": [ "from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4f3JKh1lBcz1xtd\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 01 Feb 2026 03:31:20 +1100 (AEDT)", "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 9306C4029E;\n\tSat, 31 Jan 2026 16:31:18 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id i8dWCQZjcThm; Sat, 31 Jan 2026 16:31:17 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id C3C324040B;\n\tSat, 31 Jan 2026 16:31:17 +0000 (UTC)", "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id BE6E869\n for <intel-wired-lan@lists.osuosl.org>; Sat, 31 Jan 2026 16:31:15 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 9F8C2404F6\n for <intel-wired-lan@lists.osuosl.org>; Sat, 31 Jan 2026 16:31:15 +0000 (UTC)", "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id CYiHgVAWzORY for <intel-wired-lan@lists.osuosl.org>;\n Sat, 31 Jan 2026 16:31:14 +0000 (UTC)", "from www2881.sakura.ne.jp (www2881.sakura.ne.jp [49.212.198.91])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 6ED954040B\n for <intel-wired-lan@lists.osuosl.org>; Sat, 31 Jan 2026 16:31:14 +0000 (UTC)", "from ms-a2 (248.212.13.160.dy.iij4u.or.jp [160.13.212.248])\n (authenticated bits=0)\n by www2881.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 60VGUsmQ039327\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);\n Sun, 1 Feb 2026 01:30:54 +0900 (JST) (envelope-from kohei@enjuk.jp)" ], "X-Virus-Scanned": [ "amavis at osuosl.org", "amavis at osuosl.org" ], "X-Comment": "SPF check N/A for local connections - client-ip=140.211.166.142;\n helo=lists1.osuosl.org; envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=<UNKNOWN> ", "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 smtp4.osuosl.org C3C324040B", "OpenDKIM Filter v2.11.0 smtp4.osuosl.org 6ED954040B" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1769877077;\n\tbh=WYHECLqIowuumL8zjbgitFuB0m6Aqj/Lu6CHXxY5A6k=;\n\th=From:To:Cc:Date:In-Reply-To:References:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=MLTLC9SFKL/Pj/L+rd4TRM6OH+2deNl8Fo9K9rAl+qDsFT6OejOLYInNz02n5pMW/\n\t PiUABYiO/dBIIXKOYIAAvu7UZkFzpe6rW/v0SoTWs/Xe2Dx78rC/G2luaB6Y5sZuBF\n\t lOcp16cVH04qspOI4QTuH0FEJBWd4Te4m7mM67goQXzYUPZtvYU4LxmdBQKuIPPZbc\n\t 2iM8/lHJVgEINsXalKxGJGw+TW/vqFAWLkfm+Ux0F0vKa/BmyC3LryXAbdoVfcJh1Y\n\t 0Q/w8o44fbJh3/QOUzzyBv/ImufdJROnHq4IKYjp+/yloWz99jdxl9E09v4OB6Erih\n\t 29dfbnV17UdJQ==", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=49.212.198.91;\n helo=www2881.sakura.ne.jp; envelope-from=kohei@enjuk.jp; receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org 6ED954040B", "From": "Kohei Enju <kohei@enjuk.jp>", "To": "intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org", "Cc": "Tony Nguyen <anthony.l.nguyen@intel.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Jakub Kicinski <kuba@kernel.org>,\n Paolo Abeni <pabeni@redhat.com>,\n Vitaly Lifshits <vitaly.lifshits@intel.com>,\n Simon Horman <horms@kernel.org>,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>,\n kohei.enju@gmail.com, Kohei Enju <kohei@enjuk.jp>", "Date": "Sat, 31 Jan 2026 16:29:36 +0000", "Message-ID": "<20260131163037.88108-2-kohei@enjuk.jp>", "X-Mailer": "git-send-email 2.51.0", "In-Reply-To": "<20260131163037.88108-1-kohei@enjuk.jp>", "References": "<20260131163037.88108-1-kohei@enjuk.jp>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Mailman-Original-DKIM-Signature": "a=rsa-sha256;\n bh=WYHECLqIowuumL8zjbgitFuB0m6Aqj/Lu6CHXxY5A6k=;\n c=relaxed/relaxed; d=enjuk.jp;\n h=From:To:Subject:Date:Message-ID;\n s=rs20251215; t=1769877054; v=1;\n b=tswXrpIdKGoR5Oynz75znwQLqbFYzIefazHttza7Q9yI7dDxITO18a03ODDo/WFX\n 2r1KKtUoHCmzKN5b8VJfNHF+X1jGPm5C4uClkDPZ5vpHkEBQkbe8zVUiJ/biEv/9\n 8kn5lYOTfZCjsXENCqBwrlxVuBYaZMnKph0TXyCkKHwcedLWwEsUfqzh3BZLnzdr\n TQOT4f8L9wGUSYt8xvzlNVRIa9w+YIS2cA+8cxjiQ5ZdCDRvvVg+PK2EgKcg80yd\n wNyAz4w/uvj2ojHP8CB+6VokNVPtiEnViUX55gJJ+uyNLUE23iphFx/9Pdu30adz\n aI8HWyQOzoaMV3zJPqcQaA==", "X-Mailman-Original-Authentication-Results": [ "smtp4.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=enjuk.jp", "smtp4.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=enjuk.jp header.i=@enjuk.jp header.a=rsa-sha256\n header.s=rs20251215 header.b=tswXrpId" ], "Subject": "[Intel-wired-lan] [PATCH v2 iwl-next 1/3] igc: prepare for RSS key\n get/set support", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n <intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>,\n <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 <mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "Store the RSS key inside struct igc_adapter and introduce the\nigc_write_rss_key() helper function. This allows the driver to program\nthe RSSRK registers using a persistent RSS key, instead of using a\nstack-local buffer in igc_setup_mrqc().\n\nThis is a preparation patch for adding RSS key get/set support in\nsubsequent changes, and no functional change is intended in this patch.\n\nSigned-off-by: Kohei Enju <kohei@enjuk.jp>\n---\n drivers/net/ethernet/intel/igc/igc.h | 3 +++\n drivers/net/ethernet/intel/igc/igc_ethtool.c | 20 ++++++++++++++++++++\n drivers/net/ethernet/intel/igc/igc_main.c | 8 ++++----\n 3 files changed, 27 insertions(+), 4 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/igc/igc.h b/drivers/net/ethernet/intel/igc/igc.h\nindex a427f05814c1..dd159397d191 100644\n--- a/drivers/net/ethernet/intel/igc/igc.h\n+++ b/drivers/net/ethernet/intel/igc/igc.h\n@@ -30,6 +30,7 @@ void igc_ethtool_set_ops(struct net_device *);\n \n #define MAX_ETYPE_FILTER\t\t8\n #define IGC_RETA_SIZE\t\t\t128\n+#define IGC_RSS_KEY_SIZE\t\t40\n \n /* SDP support */\n #define IGC_N_EXTTS\t2\n@@ -302,6 +303,7 @@ struct igc_adapter {\n \tunsigned int nfc_rule_count;\n \n \tu8 rss_indir_tbl[IGC_RETA_SIZE];\n+\tu8 rss_key[IGC_RSS_KEY_SIZE];\n \n \tunsigned long link_check_timeout;\n \tstruct igc_info ei;\n@@ -360,6 +362,7 @@ unsigned int igc_get_max_rss_queues(struct igc_adapter *adapter);\n void igc_set_flag_queue_pairs(struct igc_adapter *adapter,\n \t\t\t const u32 max_rss_queues);\n int igc_reinit_queues(struct igc_adapter *adapter);\n+void igc_write_rss_key(struct igc_adapter *adapter);\n void igc_write_rss_indir_tbl(struct igc_adapter *adapter);\n bool igc_has_link(struct igc_adapter *adapter);\n void igc_reset(struct igc_adapter *adapter);\ndiff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c\nindex 3172cdbca9cc..1b4075e7e8e6 100644\n--- a/drivers/net/ethernet/intel/igc/igc_ethtool.c\n+++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c\n@@ -1460,6 +1460,26 @@ static int igc_ethtool_set_rxnfc(struct net_device *dev,\n \t}\n }\n \n+/**\n+ * igc_write_rss_key - Program the RSS key into device registers\n+ * @adapter: board private structure\n+ *\n+ * Write the RSS key stored in adapter->rss_key to the IGC_RSSRK registers.\n+ * Each 32-bit chunk of the key is read using get_unaligned_le32() and written\n+ * to the appropriate register.\n+ */\n+void igc_write_rss_key(struct igc_adapter *adapter)\n+{\n+\tstruct igc_hw *hw = &adapter->hw;\n+\tu32 val;\n+\tint i;\n+\n+\tfor (i = 0; i < IGC_RSS_KEY_SIZE / 4; i++) {\n+\t\tval = get_unaligned_le32(&adapter->rss_key[i * 4]);\n+\t\twr32(IGC_RSSRK(i), val);\n+\t}\n+}\n+\n void igc_write_rss_indir_tbl(struct igc_adapter *adapter)\n {\n \tstruct igc_hw *hw = &adapter->hw;\ndiff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c\nindex 89a321a344d2..98410f9d7828 100644\n--- a/drivers/net/ethernet/intel/igc/igc_main.c\n+++ b/drivers/net/ethernet/intel/igc/igc_main.c\n@@ -778,11 +778,8 @@ static void igc_setup_mrqc(struct igc_adapter *adapter)\n \tstruct igc_hw *hw = &adapter->hw;\n \tu32 j, num_rx_queues;\n \tu32 mrqc, rxcsum;\n-\tu32 rss_key[10];\n \n-\tnetdev_rss_key_fill(rss_key, sizeof(rss_key));\n-\tfor (j = 0; j < 10; j++)\n-\t\twr32(IGC_RSSRK(j), rss_key[j]);\n+\tigc_write_rss_key(adapter);\n \n \tnum_rx_queues = adapter->rss_queues;\n \n@@ -5046,6 +5043,9 @@ static int igc_sw_init(struct igc_adapter *adapter)\n \n \tpci_read_config_word(pdev, PCI_COMMAND, &hw->bus.pci_cmd_word);\n \n+\t/* init RSS key */\n+\tnetdev_rss_key_fill(adapter->rss_key, sizeof(adapter->rss_key));\n+\n \t/* set default ring sizes */\n \tadapter->tx_ring_count = IGC_DEFAULT_TXD;\n \tadapter->rx_ring_count = IGC_DEFAULT_RXD;\n", "prefixes": [ "v2", "iwl-next", "1/3" ] }