Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2235025/?format=api
{ "id": 2235025, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2235025/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260508124208.11622-6-przemyslaw.kitszel@intel.com/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/1.2/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": "<20260508124208.11622-6-przemyslaw.kitszel@intel.com>", "list_archive_url": null, "date": "2026-05-08T12:41:58", "name": "[iwl-next,v1,05/15] ice: add helpers for Global RSS LUT alloc, free, vsi_update", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "032921a82bc5cd247f8cf9ede444d09575202e43", "submitter": { "id": 85252, "url": "http://patchwork.ozlabs.org/api/1.2/people/85252/?format=api", "name": "Przemek Kitszel", "email": "przemyslaw.kitszel@intel.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260508124208.11622-6-przemyslaw.kitszel@intel.com/mbox/", "series": [ { "id": 503388, "url": "http://patchwork.ozlabs.org/api/1.2/series/503388/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=503388", "date": "2026-05-08T12:41:53", "name": "devlink, mlx5, iavf, ice: XLVF for iavf", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/503388/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2235025/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2235025/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=Ownr3U5X;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.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 [140.211.166.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 4gBq335tGWz1yCg\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 08 May 2026 22:59:59 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 71AB640FD1;\n\tFri, 8 May 2026 12:59:54 +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 W2zKAUaCapfW; Fri, 8 May 2026 12:59:53 +0000 (UTC)", "from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id AD65B40FCE;\n\tFri, 8 May 2026 12:59:53 +0000 (UTC)", "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id 205B1317\n for <intel-wired-lan@lists.osuosl.org>; Fri, 8 May 2026 12:59:51 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id AB2BC40F70\n for <intel-wired-lan@lists.osuosl.org>; Fri, 8 May 2026 12:59:50 +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 4FgA6zydvE-E for <intel-wired-lan@lists.osuosl.org>;\n Fri, 8 May 2026 12:59:49 +0000 (UTC)", "from mgamail.intel.com (mgamail.intel.com [198.175.65.17])\n by smtp4.osuosl.org (Postfix) with ESMTPS id B141D40F5D\n for <intel-wired-lan@lists.osuosl.org>; Fri, 8 May 2026 12:59:49 +0000 (UTC)", "from fmviesa005.fm.intel.com ([10.60.135.145])\n by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 08 May 2026 05:59:50 -0700", "from irvmail002.ir.intel.com ([10.43.11.120])\n by fmviesa005.fm.intel.com with ESMTP; 08 May 2026 05:59:44 -0700", "from vecna.igk.intel.com (vecna.igk.intel.com [10.123.220.17])\n by irvmail002.ir.intel.com (Postfix) with ESMTP id 908DD2FC41;\n Fri, 8 May 2026 13:59:42 +0100 (IST)" ], "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 AD65B40FCE", "OpenDKIM Filter v2.11.0 smtp4.osuosl.org B141D40F5D" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1778245193;\n\tbh=B1W8QdzudrI1jsrtt7PZqOETfek+7FPHPLUTFY84HyQ=;\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=Ownr3U5X8Me5i+28H88hwG14BRxxCl1kDocZvzhgE2MwU/Nw5P6OclNXhBgmROib7\n\t 10eGKJiVA/+/Zip4qqoW5va0avUpobiDxbZzNFrKBhlyWM671AbO30+RTsJD0pVR1y\n\t M46GShQTsKqWt3xBR33eQE6vc5ER3XUcLh31kZw3CY+KhIgqh3m2bDqjhBkbPAYYxy\n\t iJfo9+jw+3ODFbm+S9MR3b5cMJBZtHpn7+RCKeFEnZ8/14QJoUdT5yzKHMdGGbXSI8\n\t zjqVNX15hUouKyG+TrEQmMGsDruyz6qJU3TnkW6o+XyMR8JkrLz35w9bgHYPJ8MWRy\n\t xaHVWj1Gf0gwA==", "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.17;\n helo=mgamail.intel.com; envelope-from=przemyslaw.kitszel@intel.com;\n receiver=<UNKNOWN>", "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org B141D40F5D", "X-CSE-ConnectionGUID": [ "ortjGnkRSLm3pFN+RfNtvA==", "Px6Abes9SJydlSe1VPKilg==" ], "X-CSE-MsgGUID": [ "RvKiby7iTpiQqHw5BhfToA==", "6OJBYbNuQJaAKbhNfDlFjA==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6800,10657,11779\"; a=\"79199898\"", "E=Sophos;i=\"6.23,223,1770624000\"; d=\"scan'208\";a=\"79199898\"", "E=Sophos;i=\"6.23,223,1770624000\"; d=\"scan'208\";a=\"241730119\"" ], "X-ExtLoop1": "1", "From": "Przemek Kitszel <przemyslaw.kitszel@intel.com>", "To": "intel-wired-lan@lists.osuosl.org, Michal Schmidt <mschmidt@redhat.com>,\n Jakub Kicinski <kuba@kernel.org>, Jiri Pirko <jiri@resnulli.us>", "Cc": "netdev@vger.kernel.org, Simon Horman <horms@kernel.org>,\n Tony Nguyen <anthony.l.nguyen@intel.com>,\n Michal Swiatkowski <michal.swiatkowski@linux.intel.com>,\n bruce.richardson@intel.com,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n padraig.j.connolly@intel.com, ananth.s@intel.com,\n timothy.miskell@intel.com, Jacob Keller <jacob.e.keller@intel.com>,\n Lukasz Czapnik <lukasz.czapnik@intel.com>,\n Aleksandr Loktionov <aleksandr.loktionov@intel.com>,\n Andrew Lunn <andrew+netdev@lunn.ch>,\n \"David S. Miller\" <davem@davemloft.net>,\n Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>,\n Saeed Mahameed <saeedm@nvidia.com>, Leon Romanovsky <leon@kernel.org>,\n Tariq Toukan <tariqt@nvidia.com>, Mark Bloch <mbloch@nvidia.com>,\n Przemek Kitszel <przemyslaw.kitszel@intel.com>", "Date": "Fri, 8 May 2026 14:41:58 +0200", "Message-Id": "<20260508124208.11622-6-przemyslaw.kitszel@intel.com>", "X-Mailer": "git-send-email 2.39.3", "In-Reply-To": "<20260508124208.11622-1-przemyslaw.kitszel@intel.com>", "References": "<20260508124208.11622-1-przemyslaw.kitszel@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Mailman-Original-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1778245190; x=1809781190;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=tcIF3olztzirYuNdibKrjAmw5KKYdetWRVQvzdBOXp4=;\n b=fYgwTyejcGrethv9iLBObX41BiIDBD1J8ihyqHpOZtLfo1dXT7l+y2qk\n W1S5SKFi8+U9MTL9+eot3KJYteankaZC6k/wzmgG2aK1gQNpkEZAYELQb\n 2uuDMtR7+dK9xsA6h+nGvih4+q16/GGhezUcYv6GjOA/N0xNr93oyKkOL\n cs7I/BVJLqWArMjTQDLbVpqsmLKpJfkRnI4/x4pVVz+iG/mhIF60I3mF2\n xGreT9Ehp1r+LnUCYNjy5Nfe6fUvx9Au1C7BVAL0x06gtASbIXRBwdei1\n NC5YERf0VnYA3bhhQXNbf2y1z+mhc5GVjjahAHGStpzkGqevBEaFPStnb\n A==;", "X-Mailman-Original-Authentication-Results": [ "smtp4.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com", "smtp4.osuosl.org;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.a=rsa-sha256 header.s=Intel header.b=fYgwTyej" ], "Subject": "[Intel-wired-lan] [PATCH iwl-next v1 05/15] ice: add helpers for\n Global RSS LUT alloc, free, vsi_update", "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": "Add AQ commands for RSS Global LUT allocation and free operations.\nFunctions will be called since subsequent commit.\n\nAdd programming code for GLOBAL LUT ID of UPDATE VSI AQ,\ndo the same for RSS LUT \"type\", also for PF LUT in case of VF VSI.\n\nCo-developed-by: Brett Creeley <brett.creeley@intel.com>\nSigned-off-by: Brett Creeley <brett.creeley@intel.com>\nSigned-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>\n---\n drivers/net/ethernet/intel/ice/ice.h | 1 +\n .../net/ethernet/intel/ice/ice_adminq_cmd.h | 1 +\n drivers/net/ethernet/intel/ice/ice_switch.h | 2 +\n drivers/net/ethernet/intel/ice/ice_lib.c | 28 +++++++++++--\n drivers/net/ethernet/intel/ice/ice_switch.c | 41 +++++++++++++++++++\n 5 files changed, 69 insertions(+), 4 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h\nindex f9a43daf04fe..7f4f299c4d37 100644\n--- a/drivers/net/ethernet/intel/ice/ice.h\n+++ b/drivers/net/ethernet/intel/ice/ice.h\n@@ -369,6 +369,7 @@ struct ice_vsi {\n \tu8 *rss_hkey_user;\t/* User configured hash keys */\n \tu8 *rss_lut_user;\t/* User configured lookup table entries */\n \tu8 rss_lut_type;\t/* used to configure Get/Set RSS LUT AQ call */\n+\tu8 global_lut_id; /* valid when lut_type == GLOBAL_LUT */\n \n \t/* aRFS members only allocated for the PF VSI */\n #define ICE_MAX_ARFS_LIST\t1024\ndiff --git a/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h b/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h\nindex d41b2427482d..c49896db51c6 100644\n--- a/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h\n+++ b/drivers/net/ethernet/intel/ice/ice_adminq_cmd.h\n@@ -169,6 +169,7 @@ struct ice_aqc_set_port_params {\n #define ICE_AQC_RES_TYPE_VSI_LIST_PRUNE\t\t\t0x04\n #define ICE_AQC_RES_TYPE_RECIPE\t\t\t\t0x05\n #define ICE_AQC_RES_TYPE_SWID\t\t\t\t0x07\n+#define ICE_AQC_RES_TYPE_GLOBAL_RSS_HASH\t\t0x20\n #define ICE_AQC_RES_TYPE_FDIR_COUNTER_BLOCK\t\t0x21\n #define ICE_AQC_RES_TYPE_FDIR_GUARANTEED_ENTRIES\t0x22\n #define ICE_AQC_RES_TYPE_FDIR_SHARED_ENTRIES\t\t0x23\ndiff --git a/drivers/net/ethernet/intel/ice/ice_switch.h b/drivers/net/ethernet/intel/ice/ice_switch.h\nindex b442db4a2ce5..ab6a8c78d14a 100644\n--- a/drivers/net/ethernet/intel/ice/ice_switch.h\n+++ b/drivers/net/ethernet/intel/ice/ice_switch.h\n@@ -401,6 +401,8 @@ ice_rem_adv_rule_by_id(struct ice_hw *hw,\n \t\t struct ice_rule_query_data *remove_entry);\n \n int ice_init_def_sw_recp(struct ice_hw *hw);\n+int ice_alloc_rss_global_lut(struct ice_hw *hw, u16 *global_lut_id);\n+int ice_free_rss_global_lut(struct ice_hw *hw, u16 global_lut_id);\n u16 ice_get_hw_vsi_num(struct ice_hw *hw, u16 vsi_handle);\n \n int ice_replay_vsi_all_fltr(struct ice_hw *hw, u16 vsi_handle);\ndiff --git a/drivers/net/ethernet/intel/ice/ice_lib.c b/drivers/net/ethernet/intel/ice/ice_lib.c\nindex ac6698a01d2f..2de62cde14ab 100644\n--- a/drivers/net/ethernet/intel/ice/ice_lib.c\n+++ b/drivers/net/ethernet/intel/ice/ice_lib.c\n@@ -1154,30 +1154,46 @@ static void ice_set_fd_vsi_ctx(struct ice_vsi_ctx *ctxt, struct ice_vsi *vsi)\n \tctxt->info.acl_def_act = cpu_to_le16(val);\n }\n \n+/* Translate @lut_type used in most of the places to the Admin Queue\n+ * Q_OPT value for RSS.\n+ * Used with VSI ADD and VSI UPDATE AQs (opcodes 0x0210, 0x0211).\n+ */\n+static u8 ice_lut_type_to_aq_qopt_rss_val(enum ice_lut_type lut_type)\n+{\n+\tswitch (lut_type) {\n+\tcase ICE_LUT_PF:\n+\t\treturn ICE_AQ_VSI_Q_OPT_RSS_LUT_PF;\n+\tcase ICE_LUT_GLOBAL:\n+\t\treturn ICE_AQ_VSI_Q_OPT_RSS_LUT_GBL;\n+\tcase ICE_LUT_VSI:\n+\tdefault:\n+\t\treturn ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI;\n+\t}\n+}\n+\n /**\n * ice_set_rss_vsi_ctx - Set RSS VSI context before adding a VSI\n * @ctxt: the VSI context being set\n * @vsi: the VSI being configured\n */\n void ice_set_rss_vsi_ctx(struct ice_vsi_ctx *ctxt, struct ice_vsi *vsi)\n {\n \tu8 lut_type, hash_type;\n+\tu8 global_lut_id = 0;\n \tstruct device *dev;\n \tstruct ice_pf *pf;\n \n \tpf = vsi->back;\n \tdev = ice_pf_to_dev(pf);\n \n \tswitch (vsi->type) {\n \tcase ICE_VSI_CHNL:\n-\tcase ICE_VSI_PF:\n-\t\t/* PF VSI will inherit RSS instance of PF */\n \t\tlut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_PF;\n \t\tbreak;\n+\tcase ICE_VSI_PF:\n \tcase ICE_VSI_VF:\n \tcase ICE_VSI_SF:\n-\t\t/* VF VSI will gets a small RSS table which is a VSI LUT type */\n-\t\tlut_type = ICE_AQ_VSI_Q_OPT_RSS_LUT_VSI;\n+\t\tlut_type = ice_lut_type_to_aq_qopt_rss_val(vsi->rss_lut_type);\n \t\tbreak;\n \tdefault:\n \t\tdev_dbg(dev, \"Unsupported VSI type %s\\n\",\n@@ -1189,8 +1205,12 @@ void ice_set_rss_vsi_ctx(struct ice_vsi_ctx *ctxt, struct ice_vsi *vsi)\n \t\tvsi->rss_hfunc = ICE_AQ_VSI_Q_OPT_RSS_HASH_TPLZ;\n \thash_type = vsi->rss_hfunc;\n \n+\tif (vsi->rss_lut_type == ICE_LUT_GLOBAL)\n+\t\t global_lut_id = vsi->global_lut_id;\n+\n \tctxt->info.q_opt_rss =\n \t\tFIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_LUT_M, lut_type) |\n+\t\tFIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_GBL_LUT_M, global_lut_id) |\n \t\tFIELD_PREP(ICE_AQ_VSI_Q_OPT_RSS_HASH_M, hash_type);\n }\n \ndiff --git a/drivers/net/ethernet/intel/ice/ice_switch.c b/drivers/net/ethernet/intel/ice/ice_switch.c\nindex 88f1aefc24b3..b783c97f6cfe 100644\n--- a/drivers/net/ethernet/intel/ice/ice_switch.c\n+++ b/drivers/net/ethernet/intel/ice/ice_switch.c\n@@ -1527,6 +1527,47 @@ ice_aq_get_sw_cfg(struct ice_hw *hw, struct ice_aqc_get_sw_cfg_resp_elem *buf,\n \treturn status;\n }\n \n+/* Allocate a new Global LUT for the caller.\n+ * LUT ID is returned via @global_lut_id.\n+ */\n+int ice_alloc_rss_global_lut(struct ice_hw *hw, u16 *global_lut_id)\n+{\n+\tDEFINE_RAW_FLEX(struct ice_aqc_alloc_free_res_elem, buf, elem, 1);\n+\tu16 buf_len = __struct_size(buf);\n+\tint err;\n+\n+\tbuf->num_elems = cpu_to_le16(1);\n+\tbuf->res_type = cpu_to_le16(ICE_AQC_RES_TYPE_GLOBAL_RSS_HASH);\n+\n+\terr = ice_aq_alloc_free_res(hw, buf, buf_len, ice_aqc_opc_alloc_res);\n+\tif (err)\n+\t\tice_debug(hw, ICE_DBG_RES, \"Failed to allocate RSS global LUT, err %d\\n\",\n+\t\t\t err);\n+\telse\n+\t\t*global_lut_id = le16_to_cpu(buf->elem[0].e.sw_resp);\n+\n+\treturn err;\n+}\n+\n+/* Free Global LUT at @global_lut_id. */\n+int ice_free_rss_global_lut(struct ice_hw *hw, u16 global_lut_id)\n+{\n+\tDEFINE_RAW_FLEX(struct ice_aqc_alloc_free_res_elem, buf, elem, 1);\n+\tu16 buf_len = __struct_size(buf);\n+\tint err;\n+\n+\tbuf->num_elems = cpu_to_le16(1);\n+\tbuf->res_type = cpu_to_le16(ICE_AQC_RES_TYPE_GLOBAL_RSS_HASH);\n+\tbuf->elem[0].e.sw_resp = cpu_to_le16(global_lut_id);\n+\n+\terr = ice_aq_alloc_free_res(hw, buf, buf_len, ice_aqc_opc_free_res);\n+\tif (err)\n+\t\tice_debug(hw, ICE_DBG_RES, \"Failed to free RSS global LUT %d, err %d\\n\",\n+\t\t\t global_lut_id, err);\n+\n+\treturn err;\n+}\n+\n /**\n * ice_aq_add_vsi\n * @hw: pointer to the HW struct\n", "prefixes": [ "iwl-next", "v1", "05/15" ] }