{"id":2230136,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230136/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260429102426.210750-3-jtornosm@redhat.com/","project":{"id":46,"url":"http://patchwork.ozlabs.org/api/1.1/projects/46/?format=json","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":""},"msgid":"<20260429102426.210750-3-jtornosm@redhat.com>","date":"2026-04-29T10:24:24","name":"[net,v5,2/4] i40e: skip unnecessary VF reset when setting trust","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"6e8e5512ce8ad6e443c070c6078bf3aa5d3cdc2b","submitter":{"id":93070,"url":"http://patchwork.ozlabs.org/api/1.1/people/93070/?format=json","name":"Jose Ignacio Tornos Martinez","email":"jtornosm@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20260429102426.210750-3-jtornosm@redhat.com/mbox/","series":[{"id":502034,"url":"http://patchwork.ozlabs.org/api/1.1/series/502034/?format=json","web_url":"http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=502034","date":"2026-04-29T10:24:22","name":"Fix i40e/ice/iavf VF bonding after netdev lock changes","version":5,"mbox":"http://patchwork.ozlabs.org/series/502034/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2230136/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230136/checks/","tags":{},"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=MKSJJ8o+;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=osuosl.org\n (client-ip=140.211.166.136; helo=smtp3.osuosl.org;\n envelope-from=intel-wired-lan-bounces@osuosl.org;\n receiver=patchwork.ozlabs.org)"],"Received":["from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\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 4g5D2n0b2cz1yHZ\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 29 Apr 2026 20:25:21 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 441CB60DBC;\n\tWed, 29 Apr 2026 10:25:19 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id pnNuLoYBu2ev; Wed, 29 Apr 2026 10:25:18 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 7F26A60EA7;\n\tWed, 29 Apr 2026 10:25:18 +0000 (UTC)","from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n by lists1.osuosl.org (Postfix) with ESMTP id 12A111B8\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 10:25:17 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id CE80460EA7\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 10:25:16 +0000 (UTC)","from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id lXyCwZ8k2P-Y for <intel-wired-lan@lists.osuosl.org>;\n Wed, 29 Apr 2026 10:25:16 +0000 (UTC)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by smtp3.osuosl.org (Postfix) with ESMTPS id BAE7660DBC\n for <intel-wired-lan@lists.osuosl.org>; Wed, 29 Apr 2026 10:25:15 +0000 (UTC)","from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-312-NXrLFJamOQegshwmHEFSZw-1; Wed,\n 29 Apr 2026 06:25:04 -0400","from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 867F6180034B; Wed, 29 Apr 2026 10:24:58 +0000 (UTC)","from fedora.redhat.com (unknown [10.44.32.45])\n by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id ABD0A1800446; Wed, 29 Apr 2026 10:24:53 +0000 (UTC)"],"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 smtp3.osuosl.org 7F26A60EA7","OpenDKIM Filter v2.11.0 smtp3.osuosl.org BAE7660DBC"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1777458318;\n\tbh=yTpL5wJR/2IpBuHxEHXZPXPdI76PJuWOkbsqVNAGeqg=;\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=MKSJJ8o+Ofan6OmhC/P6VHBEJGGIhtk/2EG4YYHJiuu0SI/bPpMM6Emlk/t2vaME+\n\t TVGhRHY7/ddeVbICM9fHjWYQRftXQIQcI++4V35vWu0iq9MT1KYLBfTpfOFpRXX9Ys\n\t p5HKeNby+qIK/5rTPGhZQgA7s9XzqVq2fcrSCM28HgiVv8s2i3cmkxYBebzpO+vaYu\n\t bHBPeRiQ2GMZAbNTLftGZuTIa7KlRJSZlM1eo98CFZsejQj5MoamyRDFOZDr9XrS4f\n\t BZ6fhOuGKH36Ar7nqEri1OeEOCo2vBDG1lSXYjzpNCdTXlNdcHoK4QB3KWcYEPbxr6\n\t 5PtLJNz/C0Htg==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=170.10.133.124;\n helo=us-smtp-delivery-124.mimecast.com; envelope-from=jtornosm@redhat.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp3.osuosl.org BAE7660DBC","X-MC-Unique":"NXrLFJamOQegshwmHEFSZw-1","X-Mimecast-MFC-AGG-ID":"NXrLFJamOQegshwmHEFSZw_1777458298","From":"Jose Ignacio Tornos Martinez <jtornosm@redhat.com>","To":"netdev@vger.kernel.org","Cc":"intel-wired-lan@lists.osuosl.org, przemyslaw.kitszel@intel.com,\n aleksandr.loktionov@intel.com, jacob.e.keller@intel.com, horms@kernel.org,\n jesse.brandeburg@intel.com, anthony.l.nguyen@intel.com,\n davem@davemloft.net, edumazet@google.com, kuba@kernel.org,\n pabeni@redhat.com, Jose Ignacio Tornos Martinez <jtornosm@redhat.com>","Date":"Wed, 29 Apr 2026 12:24:24 +0200","Message-ID":"<20260429102426.210750-3-jtornosm@redhat.com>","In-Reply-To":"<20260429102426.210750-1-jtornosm@redhat.com>","References":"<20260429102426.210750-1-jtornosm@redhat.com>","MIME-Version":"1.0","X-Scanned-By":"MIMEDefang 3.4.1 on 10.30.177.111","X-Mimecast-MFC-PROC-ID":"1UEvBCCMVsKFBEWKV2-WnhJ6SdT_7w99qUDB766fh94_1777458298","X-Mimecast-Originator":"redhat.com","Content-Transfer-Encoding":"8bit","content-type":"text/plain; charset=\"US-ASCII\"; x-default=true","X-Mailman-Original-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com;\n s=mimecast20190719; t=1777458311;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=yTpL5wJR/2IpBuHxEHXZPXPdI76PJuWOkbsqVNAGeqg=;\n b=TCHHtOpW7Ns8x+yZjwt1elyyAPuszYjUV3UuNclyMv6KyTB0FGje/UnoENUVxLU3CdarFF\n uUERdnMTdifstT5A7EHuA1HVDZDUvc+IaYXtMsyNm535/09KPnC7iLPKEkVqXA6RQMjQke\n qW5t3qxL2guc77sT34umbLBKXu2bUNk=","X-Mailman-Original-Authentication-Results":["smtp3.osuosl.org;\n dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","smtp3.osuosl.org;\n dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com\n header.a=rsa-sha256 header.s=mimecast20190719 header.b=TCHHtOpW"],"Subject":"[Intel-wired-lan] [PATCH net v5 2/4] i40e: skip unnecessary VF\n reset when setting trust","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":"The current implementation triggers a VF reset when changing the trust\nsetting, causing a ~10 second delay during bonding setup.\n\nIn all the cases, the reset causes a ~10 second delay during which:\n- VF must reinitialize completely\n- Any in-progress operations (like bonding enslave) fail with timeouts\n- VF is unavailable\n\nWhen granting trust, no reset is needed - we can just set the capability\nflag to allow privileged operations.\n\nWhen revoking trust, we only need to reset (conservative approach) if\nthe VF has actually configured advanced features that require cleanup\n(ADQ/cloud filters, promiscuous mode). For VFs in a clean state, we can\nsafely change the trust setting without the disruptive reset.\n\nWhen we don't reset, we manually handle capability flag via helper\nfunction, eliminating the delay.\n\nSigned-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>\n---\nv5: kdoc should end with '*/' not '**/' (new function)\n    Address AI review (sashiko.dev) from Simon Horman:\n    -  Adopt a conservative approach checking multiple conditions before\n       skipping reset: ADQ, cloud filters, promiscuous mode\n    - Simplify helper function to only handle capability flag\nv4: https://lore.kernel.org/all/20260423130405.139568-3-jtornosm@redhat.com/\n\n .../ethernet/intel/i40e/i40e_virtchnl_pf.c    | 38 ++++++++++++++-----\n 1 file changed, 28 insertions(+), 10 deletions(-)","diff":"diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\nindex a26c3d47ec15..0cc434b26eb8 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n@@ -4943,6 +4943,23 @@ int i40e_ndo_set_vf_spoofchk(struct net_device *netdev, int vf_id, bool enable)\n \treturn ret;\n }\n \n+/**\n+ * i40e_setup_vf_trust - Enable/disable VF trust mode without reset\n+ * @vf: VF to configure\n+ * @setting: trust setting\n+ *\n+ * Update VF flags when changing trust without performing a VF reset.\n+ * This is only called when it's safe to skip the reset (VF has no advanced\n+ * features configured that need cleanup).\n+ */\n+static void i40e_setup_vf_trust(struct i40e_vf *vf, bool setting)\n+{\n+\tif (setting)\n+\t\tset_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);\n+\telse\n+\t\tclear_bit(I40E_VIRTCHNL_VF_CAP_PRIVILEGE, &vf->vf_caps);\n+}\n+\n /**\n  * i40e_ndo_set_vf_trust\n  * @netdev: network interface device structure of the pf\n@@ -4987,19 +5004,20 @@ int i40e_ndo_set_vf_trust(struct net_device *netdev, int vf_id, bool setting)\n \tset_bit(__I40E_MACVLAN_SYNC_PENDING, pf->state);\n \tpf->vsi[vf->lan_vsi_idx]->flags |= I40E_VSI_FLAG_FILTER_CHANGED;\n \n-\ti40e_vc_reset_vf(vf, true);\n+\t/* Reset only if revoking trust and VF has advanced features configured */\n+\tif (!setting &&\n+\t    (vf->adq_enabled || vf->num_cloud_filters > 0 ||\n+\t     test_bit(I40E_VF_STATE_UC_PROMISC, &vf->vf_states) ||\n+\t     test_bit(I40E_VF_STATE_MC_PROMISC, &vf->vf_states))) {\n+\t\ti40e_vc_reset_vf(vf, true);\n+\t\ti40e_del_all_cloud_filters(vf);\n+\t} else {\n+\t\ti40e_setup_vf_trust(vf, setting);\n+\t}\n+\n \tdev_info(&pf->pdev->dev, \"VF %u is now %strusted\\n\",\n \t\t vf_id, setting ? \"\" : \"un\");\n \n-\tif (vf->adq_enabled) {\n-\t\tif (!vf->trusted) {\n-\t\t\tdev_info(&pf->pdev->dev,\n-\t\t\t\t \"VF %u no longer Trusted, deleting all cloud filters\\n\",\n-\t\t\t\t vf_id);\n-\t\t\ti40e_del_all_cloud_filters(vf);\n-\t\t}\n-\t}\n-\n out:\n \tclear_bit(__I40E_VIRTCHNL_OP_PENDING, pf->state);\n \treturn ret;\n","prefixes":["net","v5","2/4"]}