[{"id":3681457,"web_url":"http://patchwork.ozlabs.org/comment/3681457/","msgid":"<IA3PR11MB89864464104A225EE9675600E52A2@IA3PR11MB8986.namprd11.prod.outlook.com>","list_archive_url":null,"date":"2026-04-23T13:14:47","subject":"Re: [Intel-wired-lan] [PATCH net v4 3/4] iavf: send MAC change\n request synchronously","submitter":{"id":75597,"url":"http://patchwork.ozlabs.org/api/people/75597/","name":"Loktionov, Aleksandr","email":"aleksandr.loktionov@intel.com"},"content":"> -----Original Message-----\n> From: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>\n> Sent: Thursday, April 23, 2026 3:04 PM\n> To: netdev@vger.kernel.org\n> Cc: intel-wired-lan@lists.osuosl.org; Kitszel, Przemyslaw\n> <przemyslaw.kitszel@intel.com>; Loktionov, Aleksandr\n> <aleksandr.loktionov@intel.com>; Keller, Jacob E\n> <jacob.e.keller@intel.com>; horms@kernel.org;\n> jesse.brandeburg@intel.com; Nguyen, Anthony L\n> <anthony.l.nguyen@intel.com>; davem@davemloft.net;\n> edumazet@google.com; kuba@kernel.org; pabeni@redhat.com; Jose Ignacio\n> Tornos Martinez <jtornosm@redhat.com>; stable@vger.kernel.org\n> Subject: [PATCH net v4 3/4] iavf: send MAC change request\n> synchronously\n> \n> After commit ad7c7b2172c3 (\"net: hold netdev instance lock during\n> sysfs operations\"), iavf_set_mac() is called with the netdev instance\n> lock already held.\n> \n> The function queues a MAC address change request via\n> iavf_replace_primary_mac() and then waits for completion. However, in\n> the current flow, the actual virtchnl message is sent by the watchdog\n> task, which also needs to acquire the netdev lock to run.\n> Additionally, the adminq_task which processes virtchnl responses also\n> needs the netdev lock.\n> \n> This creates a deadlock scenario:\n> 1. iavf_set_mac() holds netdev lock and waits for MAC change 2.\n> Watchdog needs netdev lock to send the request -> blocked 3. Even if\n> request is sent, adminq_task needs netdev lock to process\n>    PF response -> blocked\n> 4. MAC change times out after 2.5 seconds 5. iavf_set_mac() returns -\n> EAGAIN\n> \n> This particularly affects VFs during bonding setup when multiple VFs\n> are enslaved in quick succession.\n> \n> Fix by implementing a synchronous MAC change operation similar to the\n> approach used in commit fdadbf6e84c4 (\"iavf: fix incorrect reset\n> handling in callbacks\").\n> \n> The solution:\n> 1. Send the virtchnl ADD_ETH_ADDR message directly (not via watchdog)\n> 2. Poll the admin queue hardware directly for responses 3. Process all\n> received messages (including non-MAC messages) 4. Return when MAC\n> change completes or times out\n> \n> A new generic function iavf_poll_virtchnl_response() is introduced\n> that can be reused for any future synchronous virtchnl operations. It\n> takes a callback to check completion, allowing flexible condition\n> checking.\n> \n> This allows the operation to complete synchronously while holding\n> netdev_lock, without relying on watchdog or adminq_task. The function\n> can sleep for up to 2.5 seconds polling hardware, but this is\n> acceptable since netdev_lock is per-device and only serializes\n> operations on the same interface.\n> \n> To support this, change iavf_add_ether_addrs() to return an error code\n> instead of void, allowing callers to detect failures. Additionally,\n> export iavf_mac_add_reject() to enable proper rollback on local\n> failures (timeouts, send errors) - PF rejections are already handled\n> automatically by iavf_virtchnl_completion().\n> \n> Fixes: ad7c7b2172c3 (\"net: hold netdev instance lock during sysfs\n> operations\")\n> cc: stable@vger.kernel.org\n> Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>\n> ---\n> v4: Complete with Przemek Kitszel comments:\n>     - Remove vc_waitqueue entirely (not needed any more)\n>     - Add named parameters to callback function pointer declaration\n> for\n>       clarity\n>     - Simplify callback signature: add v_op parameter so callback\n>       receives the opcode from the processed message to identify which\n>       response was received\n>     - Optimize polling loop to single condition check per iteration\n>       instead of checking both before and after message processing\n>     Address AI review (sashiko.dev) from Simon Horman:\n>     - Complete iavf_add_ether_addrs() error handling\n>     - Skip non-virtchnl hardware events\n> (received_op=VIRTCHNL_OP_UNKNOWN),\n>       these can cause false completion detection\n>     - Complete rollback for local failures (not PF rejection) reusing\n>       iavf_mac_add_reject() to restore the old primary filter\n> v3: https://lore.kernel.org/netdev/20260414110006.124286-4-\n> jtornosm@redhat.com/\n> \n>  drivers/net/ethernet/intel/iavf/iavf.h        | 10 +-\n>  drivers/net/ethernet/intel/iavf/iavf_main.c   | 70 +++++++++----\n>  .../net/ethernet/intel/iavf/iavf_virtchnl.c   | 99 +++++++++++++++++-\n> -\n>  3 files changed, 151 insertions(+), 28 deletions(-)\n> \n> diff --git a/drivers/net/ethernet/intel/iavf/iavf.h\n> b/drivers/net/ethernet/intel/iavf/iavf.h\n> index e9fb0a0919e3..78fa3df06e11 100644\n> --- a/drivers/net/ethernet/intel/iavf/iavf.h\n> +++ b/drivers/net/ethernet/intel/iavf/iavf.h\n> @@ -260,7 +260,6 @@ struct iavf_adapter {\n>  \tstruct work_struct adminq_task;\n>  \tstruct work_struct finish_config;\n>  \twait_queue_head_t down_waitqueue;\n\n...\n\n> --\n> 2.53.0\n\n\nReviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>","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=6WzjTBIg;\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 4g1c5M6q4Wz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 23:15:03 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 7B72E402C3;\n\tThu, 23 Apr 2026 13:15:02 +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 T99EDZA7o54y; Thu, 23 Apr 2026 13:14:58 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id A36B04036A;\n\tThu, 23 Apr 2026 13:14:58 +0000 (UTC)","from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n by lists1.osuosl.org (Postfix) with ESMTP id 97F42206\n for <intel-wired-lan@lists.osuosl.org>; Thu, 23 Apr 2026 13:14:57 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp3.osuosl.org (Postfix) with ESMTP id 88D3E60866\n for <intel-wired-lan@lists.osuosl.org>; Thu, 23 Apr 2026 13:14:57 +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 0WyzeHQCR133 for <intel-wired-lan@lists.osuosl.org>;\n Thu, 23 Apr 2026 13:14:53 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [198.175.65.11])\n by smtp3.osuosl.org (Postfix) with ESMTPS id C616260E8A\n for <intel-wired-lan@lists.osuosl.org>; Thu, 23 Apr 2026 13:14:52 +0000 (UTC)","from fmviesa004.fm.intel.com ([10.60.135.144])\n by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Apr 2026 06:14:51 -0700","from fmsmsx901.amr.corp.intel.com ([10.18.126.90])\n by fmviesa004.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Apr 2026 06:14:51 -0700","from FMSMSX903.amr.corp.intel.com (10.18.126.92) by\n fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37; Thu, 23 Apr 2026 06:14:51 -0700","from fmsedg901.ED.cps.intel.com (10.1.192.143) by\n FMSMSX903.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37 via Frontend Transport; Thu, 23 Apr 2026 06:14:51 -0700","from BN8PR05CU002.outbound.protection.outlook.com (52.101.57.46) by\n edgegateway.intel.com (192.55.55.81) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37; Thu, 23 Apr 2026 06:14:49 -0700","from IA3PR11MB8986.namprd11.prod.outlook.com (2603:10b6:208:577::21)\n by SA2PR11MB4891.namprd11.prod.outlook.com (2603:10b6:806:11e::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.21; Thu, 23 Apr\n 2026 13:14:47 +0000","from IA3PR11MB8986.namprd11.prod.outlook.com\n ([fe80::e6f0:6afb:6ef9:ab5c]) by IA3PR11MB8986.namprd11.prod.outlook.com\n ([fe80::e6f0:6afb:6ef9:ab5c%5]) with mapi id 15.20.9846.014; Thu, 23 Apr 2026\n 13:14:47 +0000"],"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 A36B04036A","OpenDKIM Filter v2.11.0 smtp3.osuosl.org C616260E8A"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1776950098;\n\tbh=cr0peC+hVKT5rF0XbMrsjKCpU1VQ8u4pkxnYsBt+yC0=;\n\th=From:To:CC:Date:References:In-Reply-To:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=6WzjTBIgVpQk/xYIpRwoePWXyPcXDLK2HhaGm2VYb0s0Y48Zs6Yqmlp21p9mjRJHz\n\t gginon+3VIkp1Ia0zC29nQ4uPlIJR7aMxSk0bfWqYQC/5xBauRLhmd5n2R1pTcz/O9\n\t 5ientaXZNy4AnuJq1tSrpdTFHXChJqftI3iTKam7e51G6aK1TWilTXLebZQ8ovhKP0\n\t 9CXoz0OtlPUy45yrUgbXqUK7owdoN0TCMIceOgkc+sgVtAdKReoOhJt9QRyDwLZRlT\n\t Y1toAIDc0nfdv5j+ESt9Hypnr7Xoj6Rl84TodE3AIrBeZFJLmnqZQG0u1vhahG/P0c\n\t qIazm3OhnRZ9A==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.11;\n helo=mgamail.intel.com; envelope-from=aleksandr.loktionov@intel.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp3.osuosl.org C616260E8A","X-CSE-ConnectionGUID":["DhSJ8xpEQv62ObN5kCXwCQ==","mMzblxhsS06IrfkILAPuUA=="],"X-CSE-MsgGUID":["St1nfSwZTTGS2mjoPZdLDg==","4xn7/sEBTBOeAtAARipXUA=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11764\"; a=\"88224156\"","E=Sophos;i=\"6.23,194,1770624000\"; d=\"scan'208\";a=\"88224156\"","E=Sophos;i=\"6.23,194,1770624000\"; d=\"scan'208\";a=\"234441902\""],"X-ExtLoop1":"1","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=Jb0TJGIGia1SY7Tpy/Wqu9wQuEGLyvV86CfPilJDB4truIlEEhF8ujKN8ZmGEDq8ADx0tLjyBeZmpa+KgJPBNnx/RFD/6t75q0bAwuFR5RakNBkHYaOcR5/AWu6sbGy0KqCz4lUi0YM5+eXc++wMy574Psv4oRSOm9FK1coogl9SilCjwJKeFRiTvcmcpcwaeZ+2pEvQPUKN+S4A0PMngZyXrXrtxlZYU0DgwkiBEEc1JOggeEsSob7/ySDD95wykS6QEBImiE+J6uSSDMv973WAxoDG6YPo8n+dFKAK/xOBzBZpmXtamVlpVnSLejBsMpIaNc8toRqMB83dfuIV8g==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=cr0peC+hVKT5rF0XbMrsjKCpU1VQ8u4pkxnYsBt+yC0=;\n b=IDdTiAtRm+AOW8YgGZoC/v4jt6UTsq9O+qwk3PV5QObdFAXLrrHOMBHcBz0nnOT2ltVqjeNNmULq+6ky9cqMO4F+jBDCP8Epg7NIfE8PHrfBbBPirnI1Ze6V7BXLo7JWtSuqVD7uW/3qJoFpms9hYvn7r7OegQnqiGIYAIXYtS1dNEaNoR3PKrjdve23aQjF881PMYAfyI5BvGUCSCOH9t94mCwzN2B+YWehHx2wMHf9XWKSflMenaW4NWFJpPGcaVTfzsOeyu2XH5+Tpu96YhTGUConqsUiPLT9aRbFsyH2Ls0vZWvSycL+Mty9gRRMXyboXH/tplSXe1aqpaO5Hw==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none","From":"\"Loktionov, Aleksandr\" <aleksandr.loktionov@intel.com>","To":"Jose Ignacio Tornos Martinez <jtornosm@redhat.com>,\n \"netdev@vger.kernel.org\" <netdev@vger.kernel.org>","CC":"\"intel-wired-lan@lists.osuosl.org\" <intel-wired-lan@lists.osuosl.org>,\n \"Kitszel, Przemyslaw\" <przemyslaw.kitszel@intel.com>, \"Keller, Jacob E\"\n <jacob.e.keller@intel.com>, \"horms@kernel.org\" <horms@kernel.org>,\n \"jesse.brandeburg@intel.com\" <jesse.brandeburg@intel.com>, \"Nguyen, Anthony\n L\" <anthony.l.nguyen@intel.com>, \"davem@davemloft.net\" <davem@davemloft.net>,\n \"edumazet@google.com\" <edumazet@google.com>, \"kuba@kernel.org\"\n <kuba@kernel.org>, \"pabeni@redhat.com\" <pabeni@redhat.com>,\n \"stable@vger.kernel.org\" <stable@vger.kernel.org>","Thread-Topic":"[PATCH net v4 3/4] iavf: send MAC change request synchronously","Thread-Index":"AQHc0yHMP4mlSOP0pUmiYPi1PTElRrXsn/hg","Date":"Thu, 23 Apr 2026 13:14:47 +0000","Message-ID":"\n <IA3PR11MB89864464104A225EE9675600E52A2@IA3PR11MB8986.namprd11.prod.outlook.com>","References":"<20260423130405.139568-1-jtornosm@redhat.com>\n <20260423130405.139568-4-jtornosm@redhat.com>","In-Reply-To":"<20260423130405.139568-4-jtornosm@redhat.com>","Accept-Language":"en-US","Content-Language":"en-US","X-MS-Has-Attach":"","X-MS-TNEF-Correlator":"","x-ms-publictraffictype":"Email","x-ms-traffictypediagnostic":"IA3PR11MB8986:EE_|SA2PR11MB4891:EE_","x-ms-office365-filtering-correlation-id":"3d9fb0a9-7197-479d-ad82-08dea13a4af8","x-ms-exchange-senderadcheck":"1","x-ms-exchange-antispam-relay":"0","x-microsoft-antispam":"BCL:0;\n ARA:13230040|1800799024|376014|366016|56012099003|18002099003|22082099003|38070700021;","x-microsoft-antispam-message-info":"\n Mcizg+A9AURjTq5hX6Z4nV2pEVdRqLmjiunun3t1m/oXsYjfjHQuq18a7cxskSgjPPYEGRd/ShqGfpUAtqu/ZD2IHlKsIfepcLCcFk7JlGaWdudmLaSBMAHJd0ZLbRFfH4WL3QXb4cxzyCqIaBIL57NwzhgGdWSMP0ykZ82mz8+c05O5lIn+NfeCOf9k6GyRiDhG27ReNLihBenvAkYFMyMNKmkVnQPfGipYpOrueNyKwxZKNOP9S+qF/9UohEv9Nu8Nx+jCQkolN/5Dsb8s0rDJmS3iiV0zPNJ/WKWGJSxGo8pV7JM8o32ZT6HWWIk4pp5EJNctv9sRMvU252+a8lxY+PJs+4ash4sxEY5/WmuVm9PtJU40Kymz8t1xh2khJ8D1wXt3euxd3oLfcfY3lIRw6sUBOAA+B/gKLlwKDdZ9TtSIAssNfu6hVrtCGgg+cwpJa7jVx13GSHpQqHLqHFBOtMd3hF8VQWndtNT3Z0QhiqqJFnKKaM6mMMXTxkCz+WYmMmw5Wu0DPVAyI6uag69ffrxfElZwY2ARwRojeITfIxKdS1ZIH0CC1SmzTqz8egfOpqYAetOKCYwgZ+oksZds+EeKKneSfl/YCnRXnsSXbsFWLwKE8yb0pVTMECbDyl5Gcv7HQ/OEQm+PXy/vx8uIdbavQAjVyz+KFCd7z9LcaYiwz1vg/PXPdqHgHcWfNwvvNSGw1OTR0NtgCjMrxSrMD789RO+UMzrajPYVl9g/Nb4v+yYgVq5iQ/vHhOzfcxP7kyuAoQv2+6SlnsRpR6xz0iJ6M0t3YXgq/5EdlfM=","x-forefront-antispam-report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:IA3PR11MB8986.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(1800799024)(376014)(366016)(56012099003)(18002099003)(22082099003)(38070700021);\n DIR:OUT; SFP:1101;","x-ms-exchange-antispam-messagedata-chunkcount":"1","x-ms-exchange-antispam-messagedata-0":"\n sTPPK0Cd8alYDTexMwrrfS9Jki4rd8Y5xhjkWL6gH9cRePsNUcqixL/NcWB62NZ7xRhFi4HJffOKM3WPCTof0gEkYoWv3C2UFW5lvQ7qOhK3X2FGm0sHDOPXMN/3Pa5nYur46NFgnZTPDNtpnVXr2UnQ1w8Zcf7l8g6tIOoMnXxILTFbrHgDuj7XSV0yKLFKQUwXO4jNOxLfT8aSNMEpK7mGn0LcXKLqJe8xRtnmaDLXm9FCmu3WTj6LvLShnPoH6ekZ/tOgeOYqnMcvtBoXyX4gJkWaAS10FwGN4l5Cs/YqGlrUCm3B0NSJiqQK+V5aCyg6WsPbljpJbiXCAuq+SfEjoUPMIfDE0+rcGYrzXxul4WhG/gxpUk5CYSXuP9FxxLFr9nWnmqlbzyZ9oKUpgM3f87G18dpiSyefR6HY3zjFcTVqc2n0zch8oBfpTqCmZbEkYty82GBj+edT3xaGab5PPcjQow1PlnhDUpRjuF0fhC6VbqX56/Yz6XGNndqM64nv8Elg10obM335T2dJrYaaNcr4Ma/L89Z3B41tgF3Mfb5/HWIL0Vu4DXfj1ZKSHrU5hoprgxzWA4L4fwljQrzLNzL8biqOT+SjpfWnKZ4ZHiJFxG/F6J+gJHisY+/bKVPG7JqDrecJIj4CCMxmGjGrsfJOla2RX3BhxduGM2L+2/tmPZfnDllx5k/hInM63Ek42LBpKCNMRfco2HZTrFcVY0YU6uag+p4sIGSmvHMS608cFZ616mo508GLiMqdkToqPhP0j6sQzr+55F+3ynaJ0pspgTahKsEFKRVFwqFRWAiaxIy89E/XY+TLCtag3e9sEQke6ALuzOwAS8JxK/fTUUPDpMaVG0ToBy1xKIuL9ZkM+kjWbjKbgO7+s6ivoiZJjr84MB9Ahqh0xrCdXpH4A1UU85xb9HSdgfLQrd8I83W//I6F202GcXEhSHP4pP9xYchZKh+YakWSMGDZxbHA5HMw6WfbkpFRkBq79otUn5Op+c9Ef2IO5OBOajNvNpvqjDdaefDw7AE61f1YllmFUElQNPL+5CbyItlM3prCdnv/0woTDQdcD65s7Fq/h8wGdjY1SeqAzgxhQQW+FicU93ElwjP0KPNuxy5UVNMkOnRAmnRpM17yMSYDASF5RNyCHSL6qWgfoV74/Hj7k+7J6U31WR0l2Imlm6RSF+ZRkW+esce8WB4jDERWJER7QEuGYGszmliScFdJnXXvzqfk4+q3PC5R2Gur+SIinIqbf2xgzyb8nKQQAGa4X6bSC4fwDMn1iPvAbG3FfX9IJbrO4quGE4dinIhvG56Z7Tv4IVTzGBo+zbpysKP2AKrVDcmGbTGmAp20h6JUuZB8VP5i/4AvQaMwYo3PQirJlKlKtDaXQkc220A0fo2b1aZT1yKvlexxwexYALZN+tR5eHxFNNhOJUeqzO6OBKl7WKGsTRcJgB6FpmdCcyIWkF95eeW1qklLLAruCEuz+a07GSyydpPBwYgOxUMSzoTu9LFRCcKSr20k9A7gxJlM23HQJvuiwOFYWrt8wubhLeXZLBnEOmHmPyHxXxURQVd3wnMq4fUi7C1otBuHn7KWwSzlK4mPv9CeO92f8+QgY42CYYo9fql9LP1pmRAylw04hDMt2bAc9Z7rVabL5n4LQjQJ5hTuF0OIZDja4U8cditk7/QHwopFa/2nZ3AMF1WzQbTwKTgm/aBhsOs6fNwFtfFRPqwWTA9v1qscb2NVYSK/7vW2ApqHb0vjsXY0vPEazWw=","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"quoted-printable","MIME-Version":"1.0","X-Exchange-RoutingPolicyChecked":"\n dtQrSHGZj66nzQ2HDH8C3aCK5AkCj9X+2fpPvqOMYJm5N333zs9n7GOBH8wgcq6TdFKFa58q9wf1FQApwvZht6YA8auxa3u5f02iqQudcu+W3CR33B21wSe232xVX22J1pcQvht8QSuuFiIy0cRct/VjMVLHDpbdmgruUqHY17kKtAewFqNNRRhWU+YMEqokYF21BbkSRoRhVJycpeNJOUvGe46+MaqVbLgz707Kdga+9VCac5NDTsLTs4rZ0ltPmz73K8SrJCsdzek7BwUMXXB1JyXUIROkkDfIpssH7X+7f+icZUVoRLoOdn3gsOu4c+AgTpP+34Vm5kVqHG57vw==","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-AuthSource":"IA3PR11MB8986.namprd11.prod.outlook.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 3d9fb0a9-7197-479d-ad82-08dea13a4af8","X-MS-Exchange-CrossTenant-originalarrivaltime":"23 Apr 2026 13:14:47.0699 (UTC)","X-MS-Exchange-CrossTenant-fromentityheader":"Hosted","X-MS-Exchange-CrossTenant-id":"46c98d88-e344-4ed4-8496-4ed7712e255d","X-MS-Exchange-CrossTenant-mailboxtype":"HOSTED","X-MS-Exchange-CrossTenant-userprincipalname":"\n VSgAPQj1L4/PFLRaB26q7MqwUmC/w8uTvwC6b1mIvLjmQ7lgQ2QQCB3eWNZVfFPwtHQYCI59mP/GbXfzge4w01hh3W/EdAGfpuzuAxNtOCo=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"SA2PR11MB4891","X-OriginatorOrg":"intel.com","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=1776950093; x=1808486093;\n h=from:to:cc:subject:date:message-id:references:\n in-reply-to:content-transfer-encoding:mime-version;\n bh=hNpZCBFtL+CPADLU/E7pKkZe7w/eRq45b2rjNN0AdzI=;\n b=EI4STJCS+3SGPQo4a4p6U884d6koxrGM6A2CgSXwH74m2kwiHpiOaBP8\n Yefn1b7gZ7A/Wpj9tcSnCGtONsCWXtM7QKzlIOmM265tBCL0n8flq0LIs\n E9BaDWtybDe2yv/bMEOTFPI6NDE2M/bvVIJJqDdAL6lJVo0+L+e7IlRp5\n 0uZxXMtEEXfkqbX+jpTtzLT33l6EDgurv1NK0YqbOgAxF6mgDAr/HOPtu\n KyBJII3AYR/ixn5IJXPVb1eJv1P3sLVnLKchhsbhtI3kfR2cc7etpGvjl\n jRy0c3aNL+aa5ZOyfRjEW4D9eku4uHGVPcSccJwcu7fwzs90Gyzlx7cWS\n A==;","X-Mailman-Original-Authentication-Results":["smtp3.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com","smtp3.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=EI4STJCS","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=intel.com;"],"Subject":"Re: [Intel-wired-lan] [PATCH net v4 3/4] iavf: send MAC change\n request synchronously","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>"}},{"id":3682581,"web_url":"http://patchwork.ozlabs.org/comment/3682581/","msgid":"<d055ed86-89d9-42fd-a881-0384ebfd24f7@intel.com>","list_archive_url":null,"date":"2026-04-27T09:23:10","subject":"Re: [Intel-wired-lan] [PATCH net v4 3/4] iavf: send MAC change\n request synchronously","submitter":{"id":85252,"url":"http://patchwork.ozlabs.org/api/people/85252/","name":"Przemek Kitszel","email":"przemyslaw.kitszel@intel.com"},"content":"On 4/23/26 15:04, Jose Ignacio Tornos Martinez wrote:\n> After commit ad7c7b2172c3 (\"net: hold netdev instance lock during sysfs\n> operations\"), iavf_set_mac() is called with the netdev instance lock\n> already held.\n> \n> The function queues a MAC address change request via\n> iavf_replace_primary_mac() and then waits for completion. However, in\n> the current flow, the actual virtchnl message is sent by the watchdog\n> task, which also needs to acquire the netdev lock to run. Additionally,\n> the adminq_task which processes virtchnl responses also needs the netdev\n> lock.\n> \n> This creates a deadlock scenario:\n> 1. iavf_set_mac() holds netdev lock and waits for MAC change\n> 2. Watchdog needs netdev lock to send the request -> blocked\n> 3. Even if request is sent, adminq_task needs netdev lock to process\n>     PF response -> blocked\n> 4. MAC change times out after 2.5 seconds\n> 5. iavf_set_mac() returns -EAGAIN\n> \n> This particularly affects VFs during bonding setup when multiple VFs are\n> enslaved in quick succession.\n> \n> Fix by implementing a synchronous MAC change operation similar to the\n> approach used in commit fdadbf6e84c4 (\"iavf: fix incorrect reset handling\n> in callbacks\").\n> \n> The solution:\n> 1. Send the virtchnl ADD_ETH_ADDR message directly (not via watchdog)\n> 2. Poll the admin queue hardware directly for responses\n> 3. Process all received messages (including non-MAC messages)\n> 4. Return when MAC change completes or times out\n> \n> A new generic function iavf_poll_virtchnl_response() is introduced that\n> can be reused for any future synchronous virtchnl operations. It takes a\n> callback to check completion, allowing flexible condition checking.\n> \n> This allows the operation to complete synchronously while holding\n> netdev_lock, without relying on watchdog or adminq_task. The function\n> can sleep for up to 2.5 seconds polling hardware, but this is acceptable\n> since netdev_lock is per-device and only serializes operations on the\n> same interface.\n> \n> To support this, change iavf_add_ether_addrs() to return an error code\n> instead of void, allowing callers to detect failures. Additionally,\n> export iavf_mac_add_reject() to enable proper rollback on local failures\n> (timeouts, send errors) - PF rejections are already handled automatically\n> by iavf_virtchnl_completion().\n> \n> Fixes: ad7c7b2172c3 (\"net: hold netdev instance lock during sysfs operations\")\n> cc: stable@vger.kernel.org\n> Signed-off-by: Jose Ignacio Tornos Martinez <jtornosm@redhat.com>\n> ---\n> v4: Complete with Przemek Kitszel comments:\n>      - Remove vc_waitqueue entirely (not needed any more)\n\nnit: I would add a short note to commit message too\nthanks a lot for the rest of changes\nI have a few last nits, please find below\n\n>      - Add named parameters to callback function pointer declaration for\n>        clarity\n>      - Simplify callback signature: add v_op parameter so callback\n>        receives the opcode from the processed message to identify which\n>        response was received\n>      - Optimize polling loop to single condition check per iteration\n>        instead of checking both before and after message processing\n>      Address AI review (sashiko.dev) from Simon Horman:\n>      - Complete iavf_add_ether_addrs() error handling\n>      - Skip non-virtchnl hardware events (received_op=VIRTCHNL_OP_UNKNOWN),\n>        these can cause false completion detection\n>      - Complete rollback for local failures (not PF rejection) reusing\n>        iavf_mac_add_reject() to restore the old primary filter\n> v3: https://lore.kernel.org/netdev/20260414110006.124286-4-jtornosm@redhat.com/\n> \n>   drivers/net/ethernet/intel/iavf/iavf.h        | 10 +-\n>   drivers/net/ethernet/intel/iavf/iavf_main.c   | 70 +++++++++----\n>   .../net/ethernet/intel/iavf/iavf_virtchnl.c   | 99 +++++++++++++++++--\n>   3 files changed, 151 insertions(+), 28 deletions(-)\n> \n> diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h\n> index e9fb0a0919e3..78fa3df06e11 100644\n> --- a/drivers/net/ethernet/intel/iavf/iavf.h\n> +++ b/drivers/net/ethernet/intel/iavf/iavf.h\n> @@ -260,7 +260,6 @@ struct iavf_adapter {\n>   \tstruct work_struct adminq_task;\n>   \tstruct work_struct finish_config;\n>   \twait_queue_head_t down_waitqueue;\n> -\twait_queue_head_t vc_waitqueue;\n>   \tstruct iavf_q_vector *q_vectors;\n>   \tstruct list_head vlan_filter_list;\n>   \tint num_vlan_filters;\n> @@ -589,8 +588,9 @@ void iavf_configure_queues(struct iavf_adapter *adapter);\n>   void iavf_enable_queues(struct iavf_adapter *adapter);\n>   void iavf_disable_queues(struct iavf_adapter *adapter);\n>   void iavf_map_queues(struct iavf_adapter *adapter);\n> -void iavf_add_ether_addrs(struct iavf_adapter *adapter);\n> +int iavf_add_ether_addrs(struct iavf_adapter *adapter);\n>   void iavf_del_ether_addrs(struct iavf_adapter *adapter);\n> +void iavf_mac_add_reject(struct iavf_adapter *adapter);\n>   void iavf_add_vlans(struct iavf_adapter *adapter);\n>   void iavf_del_vlans(struct iavf_adapter *adapter);\n>   void iavf_set_promiscuous(struct iavf_adapter *adapter);\n> @@ -607,6 +607,12 @@ void iavf_disable_vlan_stripping(struct iavf_adapter *adapter);\n>   void iavf_virtchnl_completion(struct iavf_adapter *adapter,\n>   \t\t\t      enum virtchnl_ops v_opcode,\n>   \t\t\t      enum iavf_status v_retval, u8 *msg, u16 msglen);\n> +int iavf_poll_virtchnl_response(struct iavf_adapter *adapter,\n> +\t\t\t\tbool (*condition)(struct iavf_adapter *adapter,\n> +\t\t\t\t\t\t  const void *data,\n> +\t\t\t\t\t\t  enum virtchnl_ops v_op),\n> +\t\t\t\tconst void *cond_data,\n> +\t\t\t\tunsigned int timeout_ms);\n>   int iavf_config_rss(struct iavf_adapter *adapter);\n>   void iavf_cfg_queues_bw(struct iavf_adapter *adapter);\n>   void iavf_cfg_queues_quanta_size(struct iavf_adapter *adapter);\n> diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c\n> index 67aa14350b1b..bc5994bf2cd9 100644\n> --- a/drivers/net/ethernet/intel/iavf/iavf_main.c\n> +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c\n> @@ -1047,6 +1047,48 @@ static bool iavf_is_mac_set_handled(struct net_device *netdev,\n>   \treturn ret;\n>   }\n>   \n> +/**\n> + * iavf_mac_change_done - Check if MAC change completed\n> + * @adapter: board private structure\n> + * @data: MAC address being checked (as const void *)\n> + * @v_op: virtchnl opcode from processed message\n> + *\n> + * Callback for iavf_poll_virtchnl_response() to check if MAC change completed.\n> + *\n> + * Returns true if MAC change completed, false otherwise\n\nI'm not a fan of kdoc, but would rather write kdoc-compilant comments:\nReturn: ...\n\n> + */\n> +static bool iavf_mac_change_done(struct iavf_adapter *adapter,\n> +\t\t\t\t const void *data, enum virtchnl_ops v_op)\n> +{\n> +\tconst u8 *addr = data;\n> +\n> +\treturn iavf_is_mac_set_handled(adapter->netdev, addr);\n> +}\n> +\n> +/**\n> + * iavf_set_mac_sync - Synchronously change MAC address\n> + * @adapter: board private structure\n> + * @addr: MAC address to set\n> + *\n> + * Sends MAC change request to PF and polls admin queue for response.\n> + * Caller must hold netdev_lock. This can sleep for up to 2.5 seconds.\n> + *\n> + * Returns 0 on success, negative on failure\n\nditto kdoc \"Return:\"\n\n> + */\n> +static int iavf_set_mac_sync(struct iavf_adapter *adapter, const u8 *addr)\n> +{\n> +\tint ret;\n> +\n> +\tnetdev_assert_locked(adapter->netdev);\n> +\n> +\tret = iavf_add_ether_addrs(adapter);\n> +\tif (ret)\n> +\t\treturn ret;\n> +\n> +\treturn iavf_poll_virtchnl_response(adapter, iavf_mac_change_done,\n> +\t\t\t\t\t   addr, 2500);\n> +}\n> +\n>   /**\n>    * iavf_set_mac - NDO callback to set port MAC address\n>    * @netdev: network interface device structure\n> @@ -1067,25 +1109,20 @@ static int iavf_set_mac(struct net_device *netdev, void *p)\n>   \t\treturn -EADDRNOTAVAIL;\n>   \n>   \tret = iavf_replace_primary_mac(adapter, addr->sa_data);\n> -\n>   \tif (ret)\n>   \t\treturn ret;\n>   \n> -\tret = wait_event_interruptible_timeout(adapter->vc_waitqueue,\n> -\t\t\t\t\t       iavf_is_mac_set_handled(netdev, addr->sa_data),\n> -\t\t\t\t\t       msecs_to_jiffies(2500));\n> -\n> -\t/* If ret < 0 then it means wait was interrupted.\n> -\t * If ret == 0 then it means we got a timeout.\n> -\t * else it means we got response for set MAC from PF,\n> -\t * check if netdev MAC was updated to requested MAC,\n> -\t * if yes then set MAC succeeded otherwise it failed return -EACCES\n> -\t */\n> -\tif (ret < 0)\n> +\tret = iavf_set_mac_sync(adapter, addr->sa_data);\n> +\tif (ret) {\n> +\t\t/* Rollback for local failures (timeout, send error, -EBUSY).\n> +\t\t * Note: If PF rejects the request (sends error response),\n> +\t\t * iavf_virtchnl_completion() automatically calls\n> +\t\t * iavf_mac_add_reject(), ret=0, and this is not executed.\n> +\t\t * Only local failures (no PF response received) need manual rollback.\n> +\t\t */\n> +\t\tiavf_mac_add_reject(adapter);\n>   \t\treturn ret;\n> -\n> -\tif (!ret)\n> -\t\treturn -EAGAIN;\n> +\t}\n>   \n>   \tif (!ether_addr_equal(netdev->dev_addr, addr->sa_data))\n>   \t\treturn -EACCES;\n> @@ -5415,9 +5452,6 @@ static int iavf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)\n>   \t/* Setup the wait queue for indicating transition to down status */\n>   \tinit_waitqueue_head(&adapter->down_waitqueue);\n>   \n> -\t/* Setup the wait queue for indicating virtchannel events */\n> -\tinit_waitqueue_head(&adapter->vc_waitqueue);\n> -\n>   \tINIT_LIST_HEAD(&adapter->ptp.aq_cmds);\n>   \tinit_waitqueue_head(&adapter->ptp.phc_time_waitqueue);\n>   \tmutex_init(&adapter->ptp.aq_cmd_lock);\n> diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n> index a52c100dcbc5..d1afb8261c24 100644\n> --- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n> +++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n> @@ -2,6 +2,7 @@\n>   /* Copyright(c) 2013 - 2018 Intel Corporation. */\n>   \n>   #include <linux/net/intel/libie/rx.h>\n> +#include <net/netdev_lock.h>\n>   \n>   #include \"iavf.h\"\n>   #include \"iavf_ptp.h\"\n> @@ -555,20 +556,23 @@ iavf_set_mac_addr_type(struct virtchnl_ether_addr *virtchnl_ether_addr,\n>    * @adapter: adapter structure\n>    *\n>    * Request that the PF add one or more addresses to our filters.\n> + *\n> + * Return: 0 on success, negative on failure\n>    **/\n\nthank you for also changing the kdoc when touching the function :)\n\n> -void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n> +int iavf_add_ether_addrs(struct iavf_adapter *adapter)\n>   {\n>   \tstruct virtchnl_ether_addr_list *veal;\n>   \tstruct iavf_mac_filter *f;\n>   \tint i = 0, count = 0;\n>   \tbool more = false;\n>   \tsize_t len;\n> +\tint ret;\n>   \n>   \tif (adapter->current_op != VIRTCHNL_OP_UNKNOWN) {\n>   \t\t/* bail because we already have a command pending */\n>   \t\tdev_err(&adapter->pdev->dev, \"Cannot add filters, command %d pending\\n\",\n>   \t\t\tadapter->current_op);\n> -\t\treturn;\n> +\t\treturn -EBUSY;\n>   \t}\n>   \n>   \tspin_lock_bh(&adapter->mac_vlan_list_lock);\n> @@ -580,7 +584,7 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n>   \tif (!count) {\n>   \t\tadapter->aq_required &= ~IAVF_FLAG_AQ_ADD_MAC_FILTER;\n>   \t\tspin_unlock_bh(&adapter->mac_vlan_list_lock);\n> -\t\treturn;\n> +\t\treturn 0;\n>   \t}\n>   \tadapter->current_op = VIRTCHNL_OP_ADD_ETH_ADDR;\n>   \n> @@ -594,8 +598,9 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n>   \n>   \tveal = kzalloc(len, GFP_ATOMIC);\n>   \tif (!veal) {\n> +\t\tadapter->current_op = VIRTCHNL_OP_UNKNOWN;\n>   \t\tspin_unlock_bh(&adapter->mac_vlan_list_lock);\n> -\t\treturn;\n> +\t\treturn -ENOMEM;\n>   \t}\n>   \n>   \tveal->vsi_id = adapter->vsi_res->vsi_id;\n> @@ -615,8 +620,15 @@ void iavf_add_ether_addrs(struct iavf_adapter *adapter)\n>   \n>   \tspin_unlock_bh(&adapter->mac_vlan_list_lock);\n>   \n> -\tiavf_send_pf_msg(adapter, VIRTCHNL_OP_ADD_ETH_ADDR, (u8 *)veal, len);\n> +\tret = iavf_send_pf_msg(adapter, VIRTCHNL_OP_ADD_ETH_ADDR, (u8 *)veal, len);\n>   \tkfree(veal);\n> +\tif (ret) {\n> +\t\tdev_err(&adapter->pdev->dev,\n> +\t\t\t\"Unable to send ADD_ETH_ADDR message to PF, error %d\\n\", ret);\n> +\t\tadapter->current_op = VIRTCHNL_OP_UNKNOWN;\n> +\t}\n> +\n> +\treturn ret;\n>   }\n>   \n>   /**\n> @@ -713,7 +725,7 @@ static void iavf_mac_add_ok(struct iavf_adapter *adapter)\n>    *\n>    * Remove filters from list based on PF response.\n>    **/\n> -static void iavf_mac_add_reject(struct iavf_adapter *adapter)\n> +void iavf_mac_add_reject(struct iavf_adapter *adapter)\n>   {\n>   \tstruct net_device *netdev = adapter->netdev;\n>   \tstruct iavf_mac_filter *f, *ftmp;\n> @@ -2389,7 +2401,6 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,\n>   \t\t\tiavf_mac_add_reject(adapter);\n>   \t\t\t/* restore administratively set MAC address */\n>   \t\t\tether_addr_copy(adapter->hw.mac.addr, netdev->dev_addr);\n> -\t\t\twake_up(&adapter->vc_waitqueue);\n>   \t\t\tbreak;\n>   \t\tcase VIRTCHNL_OP_DEL_VLAN:\n>   \t\t\tdev_err(&adapter->pdev->dev, \"Failed to delete VLAN filter, error %s\\n\",\n> @@ -2586,7 +2597,6 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,\n>   \t\t\t\teth_hw_addr_set(netdev, adapter->hw.mac.addr);\n>   \t\t\t\tnetif_addr_unlock_bh(netdev);\n>   \t\t\t}\n> -\t\twake_up(&adapter->vc_waitqueue);\n>   \t\tbreak;\n>   \tcase VIRTCHNL_OP_GET_STATS: {\n>   \t\tstruct iavf_eth_stats *stats =\n> @@ -2956,3 +2966,76 @@ void iavf_virtchnl_completion(struct iavf_adapter *adapter,\n>   \t} /* switch v_opcode */\n>   \tadapter->current_op = VIRTCHNL_OP_UNKNOWN;\n>   }\n> +\n> +/**\n> + * iavf_poll_virtchnl_response - Poll admin queue for virtchnl response\n> + * @adapter: adapter structure\n> + * @condition: callback to check if desired response received\n> + * @cond_data: context data passed to condition callback\n> + * @timeout_ms: maximum time to wait in milliseconds\n> + *\n> + * Polls the admin queue and processes all incoming virtchnl messages.\n> + * After processing each valid message, calls the condition callback to check\n> + * if the expected response has been received. The callback receives the opcode\n> + * of the processed message to identify which response was received. Continues\n> + * polling until the callback returns true or timeout expires.\n> + * Clear current_op on timeout to prevent permanent -EBUSY state.\n> + * Caller must hold netdev_lock. This can sleep for up to timeout_ms while\n> + * polling hardware.\n> + *\n> + * Return: 0 on success (condition met), -EAGAIN on timeout, or error code\n> + **/\n\nsingle star for closing coments **/ → */\n\n> +int iavf_poll_virtchnl_response(struct iavf_adapter *adapter,\n> +\t\t\t\tbool (*condition)(struct iavf_adapter *adapter,\n> +\t\t\t\t\t\t  const void *data,\n> +\t\t\t\t\t\t  enum virtchnl_ops v_op),\n> +\t\t\t\tconst void *cond_data,\n> +\t\t\t\tunsigned int timeout_ms)\n> +{\n> +\tstruct iavf_hw *hw = &adapter->hw;\n> +\tstruct iavf_arq_event_info event;\n> +\tenum virtchnl_ops received_op;\n> +\tunsigned long timeout;\n> +\tu32 v_retval;\n> +\tu16 pending;\n> +\tint ret = -EAGAIN;\n\nRCT violation - we sort lines from longest to shortest\n\n> +\n> +\tnetdev_assert_locked(adapter->netdev);\n> +\n> +\tevent.buf_len = IAVF_MAX_AQ_BUF_SIZE;\n> +\tevent.msg_buf = kzalloc(event.buf_len, GFP_KERNEL);\n> +\tif (!event.msg_buf)\n> +\t\treturn -ENOMEM;\n> +\n> +\ttimeout = jiffies + msecs_to_jiffies(timeout_ms);\n> +\tdo {\n> +\t\tif (iavf_clean_arq_element(hw, &event, &pending) == IAVF_SUCCESS) {\n> +\t\t\treceived_op = (enum virtchnl_ops)le32_to_cpu(event.desc.cookie_high);\n> +\t\t\tif (received_op != VIRTCHNL_OP_UNKNOWN) {\n> +\t\t\t\tv_retval = le32_to_cpu(event.desc.cookie_low);\n> +\n> +\t\t\t\tiavf_virtchnl_completion(adapter, received_op,\n> +\t\t\t\t\t\t\t (enum iavf_status)v_retval,\n> +\t\t\t\t\t\t\t event.msg_buf, event.msg_len);\n> +\n> +\t\t\t\tif (condition(adapter, cond_data, received_op)) {\n> +\t\t\t\t\tret = 0;\n> +\t\t\t\t\tbreak;\n> +\t\t\t\t}\n> +\t\t\t}\n> +\n> +\t\t\tmemset(event.msg_buf, 0, IAVF_MAX_AQ_BUF_SIZE);\n> +\n> +\t\t\tif (pending)\n> +\t\t\t\tcontinue;\n> +\t\t}\n> +\n> +\t\tusleep_range(50, 75);\n\nwe got again to the \"sleep then check time\" situation\nto resolve that, you could init @pending with 0, and sleep at the very\nbegining of each loop step if (!pending)\n\nafter that I will be no longer complaining on this patch,\nthank you again for the work!\n\n> +\t} while (time_before(jiffies, timeout));\n> +\n> +\tif (ret == -EAGAIN && adapter->current_op != VIRTCHNL_OP_UNKNOWN)\n> +\t\tadapter->current_op = VIRTCHNL_OP_UNKNOWN;\n> +\n> +\tkfree(event.msg_buf);\n> +\treturn ret;\n> +}","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=0myYXN9A;\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 4g3ymQ2rwgz1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 19:23:34 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 8321D42F59;\n\tMon, 27 Apr 2026 09:23:32 +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 zrjKkNhyvZkk; Mon, 27 Apr 2026 09:23:31 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 31CC842F5B;\n\tMon, 27 Apr 2026 09:23:31 +0000 (UTC)","from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138])\n by lists1.osuosl.org (Postfix) with ESMTP id CB2C52DF\n for <intel-wired-lan@lists.osuosl.org>; Mon, 27 Apr 2026 09:23:29 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id BC16385520\n for <intel-wired-lan@lists.osuosl.org>; Mon, 27 Apr 2026 09:23:29 +0000 (UTC)","from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id vcQEyN6801i7 for <intel-wired-lan@lists.osuosl.org>;\n Mon, 27 Apr 2026 09:23:28 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [198.175.65.11])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 1F51B8551F\n for <intel-wired-lan@lists.osuosl.org>; Mon, 27 Apr 2026 09:23:27 +0000 (UTC)","from orviesa010.jf.intel.com ([10.64.159.150])\n by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Apr 2026 02:23:20 -0700","from orsmsx901.amr.corp.intel.com ([10.22.229.23])\n by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Apr 2026 02:23:21 -0700","from ORSMSX903.amr.corp.intel.com (10.22.229.25) by\n ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37; Mon, 27 Apr 2026 02:23:19 -0700","from ORSEDG902.ED.cps.intel.com (10.7.248.12) by\n ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37 via Frontend Transport; Mon, 27 Apr 2026 02:23:19 -0700","from CH5PR02CU005.outbound.protection.outlook.com (40.107.200.7) by\n edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.37; Mon, 27 Apr 2026 02:23:17 -0700","from MN6PR11MB8102.namprd11.prod.outlook.com (2603:10b6:208:46d::9)\n by PHXPR11MB9637.namprd11.prod.outlook.com (2603:10b6:510:3ce::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9870.16; Mon, 27 Apr\n 2026 09:23:15 +0000","from MN6PR11MB8102.namprd11.prod.outlook.com\n ([fe80::8d98:e538:8d7:6311]) by MN6PR11MB8102.namprd11.prod.outlook.com\n ([fe80::8d98:e538:8d7:6311%5]) with mapi id 15.20.9870.013; Mon, 27 Apr 2026\n 09:23:15 +0000"],"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 31CC842F5B","OpenDKIM Filter v2.11.0 smtp1.osuosl.org 1F51B8551F"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1777281811;\n\tbh=KDjsI1frNgv/ApyL1uALatvAmmiGkV9bM07G9ywuTTw=;\n\th=Date:To:CC:References:From:In-Reply-To:Subject:List-Id:\n\t List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe:\n\t From;\n\tb=0myYXN9ALGWPmieS0ZST/wbd+kFKLbxEwYYi8Kco4FysENvHyQSyERx46j/eZWyEj\n\t XuMgXva7BAzo678s/k+2T2DmYOr8CEtHVlmXVr+j2BUkj21ylOiY+X63/urZWz0xky\n\t hkaqj+mSXWRyv0T5eK4/B3+EmAutlWnFrlUe4ijtyApHZe49a3/1Guj+h8uxWuOltB\n\t rqf2vYwiUdvfjlA0QvzNdv3WBEq/gHvcjg7LE05x+UTTn7Fad3Gg6+FbQshJlZjL9f\n\t LXBRQgnQsao5gEoLGtcnXrCM5X0jNadmtlJI76mv5mogKvd4WiSCSekvZfpljPxBsS\n\t ytuOJJbBYWVUg==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=198.175.65.11;\n helo=mgamail.intel.com; envelope-from=przemyslaw.kitszel@intel.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp1.osuosl.org 1F51B8551F","X-CSE-ConnectionGUID":["c2qOnC9PSNafdAmlxrNjTw==","aw8iF+pMR7uMr8ocSp8htA=="],"X-CSE-MsgGUID":["5x4XSMmPQ5q3KjPg7KFgJw==","KDsx0i6TTI2YpUOFMAes7Q=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11768\"; a=\"88478341\"","E=Sophos;i=\"6.23,201,1770624000\"; d=\"scan'208\";a=\"88478341\"","E=Sophos;i=\"6.23,201,1770624000\"; d=\"scan'208\";a=\"232706582\""],"X-ExtLoop1":"1","ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=dInBVrlz3bTijCyfGq2zmPvYpk73WRgI54jJ7rTt6ST2Yy+HW+AHw1ScfNiPZrZbQ15bkzppoMF24cyR/GNlN6j2oPN8agORycheCkqbdo5Xxx5jMv8OVWgBKJagMPUF+fak/WsW9+GZgx+7BQoKG2wLGmczId5ZvHQw/Cj92A0jObVzUXMiAqAXByomX46x0q5akRe38oAO1NpwHxSNY0WPyxdLPMrJzjrRltFNRegIBuVTGpAvX59zATRBjNJR6jfThH+KTgo6/PPdMIMD24CafdHRH3IUHRFnMSYNUInbouEBfepYBWLrVdRO7VbD/lB9PfjzINaDPKqRqHECzA==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=KDjsI1frNgv/ApyL1uALatvAmmiGkV9bM07G9ywuTTw=;\n b=aK8kYTZl/1GPAeEd7+eXh+l3XkrzN7PDFWHXuJN0wBLipylqZud4o7xW9i8AHK2Iv/lnBG/n+2VoOS23JK2vBtb6kVVI5N8dFl+INmJL72SH/vC/Q9b9IB8j3O3Xxnq9HqltpzUua7Aq8Q1blNPimz1Td/s0khZmtTTsJhAtGJXeM02M7/ue57yeYq5rOG47+oT2NpGohKRCQFDXGJEtKYBvrl8kYmMrDeAtOCytatVz4c8r9ZSCxpwn4+kI4fCMHqszbyS421QsNbCn+RqYUsNyfg7n7fbU0Njl9SNLKAnWYGVbT674wTUGYYSUqSkA35YB552JIA030XdSwflKjQ==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none","Message-ID":"<d055ed86-89d9-42fd-a881-0384ebfd24f7@intel.com>","Date":"Mon, 27 Apr 2026 11:23:10 +0200","User-Agent":"Mozilla Thunderbird","To":"Jose Ignacio Tornos Martinez <jtornosm@redhat.com>","CC":"<intel-wired-lan@lists.osuosl.org>, <aleksandr.loktionov@intel.com>,\n <jacob.e.keller@intel.com>, <horms@kernel.org>, <anthony.l.nguyen@intel.com>,\n <davem@davemloft.net>, <edumazet@google.com>, <kuba@kernel.org>,\n <pabeni@redhat.com>, <netdev@vger.kernel.org>","References":"<20260423130405.139568-1-jtornosm@redhat.com>\n <20260423130405.139568-4-jtornosm@redhat.com>","From":"Przemek Kitszel <przemyslaw.kitszel@intel.com>","Content-Language":"en-US","In-Reply-To":"<20260423130405.139568-4-jtornosm@redhat.com>","Content-Type":"text/plain; charset=\"UTF-8\"; format=flowed","Content-Transfer-Encoding":"8bit","X-ClientProxiedBy":"DU2P251CA0007.EURP251.PROD.OUTLOOK.COM\n (2603:10a6:10:230::9) To MN6PR11MB8102.namprd11.prod.outlook.com\n (2603:10b6:208:46d::9)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"MN6PR11MB8102:EE_|PHXPR11MB9637:EE_","X-MS-Office365-Filtering-Correlation-Id":"d04ac0b5-bc69-471a-5ec5-08dea43e9c47","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|376014|1800799024|366016|22082099003|56012099003|18002099003;","X-Microsoft-Antispam-Message-Info":"\n 9ZNGE3WPHS4QAJYumDq/IaPr23u0R2bduyRkYwdVsy6aUuqF4xMqyZzNlfr5ww69dWLm+81gm3lPb7YJM5kx58RuedBwNXp82/0y+Kep0ef3KYyZzFXT5xB19pNGZOCESFUy3lGyv5RJ3Z0SErir5C9+3ph66Y0mUQQgJrODR55htbhSjE2HFaaQagbOQtTy/k5O/h7T7xrezbXA/gCqnlFD7rPVpKcXUqhyekzrYni8GnJDCz/c+5JBW6vSHU5SkBw8j+MrcaEALj45gyym7Uqk0/hPHG8ZpCSpNC/f58yCIJ7MG4kJ1NxX1tUOkWNtqog4wKOr1X0iH6bHN2RRelm0C4fiAPo+T0V+quYFuiV10Gc9dH/0vzRq5KIoWeOzVufrufOMwCsWmyMZ1QRES+SArRrA9gIXSasp1Amec9sq55L1KMLE6+EnqUWMdT0qdFxFGbuYK2ZUXLd18PXvMqbr/FmDAjwjvZiaSWc4aePRoP9hMKffgwWpld/uSwXFSqEBWegIACfz/oaOfxULHVqjrgq2E8JO01DLPhsfL8iWbt6CNS4vJrQyRevGe4D5yZlIqDUI/j8siQkFM+TKKm7ix5tnooxV+CVLQNSLfn28GRXmpNiwSJy1BTPuGA9IpCM/3JCK+nsh54MgIa5uQL9993SMY9WY4wA1vPtG7Lc35/jNDlBlh8L3VgBV0g4/zTGrmeGbnmP5MAFRz37rrleyWvBB0jYOe9K2U2fIdflldylugQ3feLR/pmyyVK2D","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:MN6PR11MB8102.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(376014)(1800799024)(366016)(22082099003)(56012099003)(18002099003);\n DIR:OUT; SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"=?utf-8?q?bKPstM/M/AGNY3tHdhU1R++R4X3e?=\n\t=?utf-8?q?5NnhtSnXca1Qo6LgXRMsOE8qhKeFvTrJvmsHhWLkZv3dLKi+J0DcZ4UEJzd0iP/Dq?=\n\t=?utf-8?q?ULkfVcKIEZ2b6MTvJgJ/GFtWAX+/3H1L4tbFqF71K9ZJMkpoa2PldX337pXvR0BEp?=\n\t=?utf-8?q?hq/8ToJzTjXGGQVsz4QKKC1aOb+E9hpXxa4Rq2qf+rMRq9wYes4HlWWTq+PcTF6rY?=\n\t=?utf-8?q?Czmz32CAs0IGdMBh/Gd8QIaBg8oACiFNU7fQLVVbpE9zw7VTUS6aDyHeTVpPsCM6G?=\n\t=?utf-8?q?e3ccfBxKfWaQ/Os0QH1aq7irsDehkZnDeLbDH+050HRT0an+y/VuwAXRwXYesFU7g?=\n\t=?utf-8?q?JgENGKG/wn5FORL5bLu10+Xov3i5VwiLGP+Jz0FfJ4CDoh8tHV+AVdbWgUSF/lzvw?=\n\t=?utf-8?q?EqXMtpLoMADYNFifaA2dcHS+QE8FfwZnz9Mw2ZiWsNAWIEGdUk1/QaBtwgfdr14p8?=\n\t=?utf-8?q?Z3H2/AN2WwOxcGPZMMNX4q9kqG9oKGTWGE9EQmtWRYas2ljkOhk23k9izjzw251bl?=\n\t=?utf-8?q?V+MDSv0g1KyC2EUcKllAVEJIpHZRQIu7qEGIhipfw4MzytfkKymyQRjf7pfIWrYWH?=\n\t=?utf-8?q?cWhtlm8+7QYfN94pwyOUS/gR8S+rIYk+YEwc6rNs8mQT6Ge4l8gmhdXmLOxx2CG1o?=\n\t=?utf-8?q?hG6OcKZymhXxjjJLzWeSq0bZYqif2DNsoIQ5T+ysRVTCgFl+/Jbnee0go3xNdkJmg?=\n\t=?utf-8?q?ojtNmv53lm/thI48Gw2bU38DuQMaAzhrBzd6axxN35xeVQRbBO6YfUTpS8KSngMYf?=\n\t=?utf-8?q?8Hk1IL9D4scGUgtBdI6SAAIPEdGljg2Z8W6A6wbkVqCX4rBIgNDcUQkIMaG+EBmtM?=\n\t=?utf-8?q?VdvP0eX5Z9rI98LmHFhga2upC7MKW0OOFrQjgboHtyuPOW+JpCfLMj6+VjGUMt9Qp?=\n\t=?utf-8?q?D5ruEWASNeopUIF91IfpxuDbgawUJ8nODhqfSquagN3LbEllTbKaJx9ay1VS6xFj7?=\n\t=?utf-8?q?8WJo9LqPMERukTdOEddUj6+QXfasCTKldfAlhOJWmJQTqayA1+N8cL+ZeNdKVzmH4?=\n\t=?utf-8?q?8ZAdLjZqSfsm2b9ztewtNDYFg6JmGBAbu+tU11BmFwnWMUiEWfpPBYGuTDPupoLoT?=\n\t=?utf-8?q?5nkI/sqQ6U2JohE/Q3nKqj6PijWfkjqyBrhu3BGjVorYDD12DK75OO37RFuIoun4q?=\n\t=?utf-8?q?6p956SqdfGTV7Jyyizde3uLcavmd4voe32zwElQKTVPgxGjxTjtz8vDm6X8QgkZgM?=\n\t=?utf-8?q?A76nZlN+Vax65rady6vGLaheBgdSLpiEEaOHlDvdn8exFrpITnuEmswMrOzP+bjKM?=\n\t=?utf-8?q?b8m4h2yFL9UcGBhRWYaBun9brRIkqBFjlerwQm1aCD+8GnkqnnUv2GXx4CslwIo9U?=\n\t=?utf-8?q?3ds+ZCmvfdRjMcOFN6VhmtA3QjfnfC/vunfWyqQa42/KXoyzDBEL/KIGoX1lzYHIk?=\n\t=?utf-8?q?1FVbct+gNHyCS2c2tcpQRXLz9SgeV8c1qQSsrtZ3nc2SJoQWMnSwHL917tBahuYc4?=\n\t=?utf-8?q?DzaS0AM6gQVhmI9O2WuLvXLx+L4+m0rz/CPSAJzukp1bBIHXUPld17DsNsPSWrxaS?=\n\t=?utf-8?q?VY8W6EpJx2hrMYe7cNAPXkJG8GoJ/bz4C4ttySF0Ao0U1VXM/tCLAhByjQGjCdhOq?=\n\t=?utf-8?q?CxWXsWCeBqhZ515I8+2lGsBM6xw2W7xRfnTAQ6IaN1b+vinpo1IoCoyf5akwz0GWM?=\n\t=?utf-8?q?jnbwCsTF+19aRupSYaxSYUQ42UorCWEtYem0dI08HM0pTy6fGLNy0=3D?=","X-Exchange-RoutingPolicyChecked":"\n nNoLE1yYp30Isc4ubmyiUCK6GqLZrZ0v7l/2hWKM/2NFrszdKVjJ/k0OniwY/oAkRg9Rviw+/TLFynYZCg5xa6QAdVJS8KSLlxoKfbM2Q1xtV0dSS4AYPXUI9xaU/oicgf11zNQYpRKU7rLMV9C7C5hr5M9snavvSGGJHBtuR8xHSGbDCyJRBV0aUGXVe04J4yS51Qgopj7dbXdx2P2pThguLuzPDrAS/8EuTQ8c6yCM8J6sD4Aj16U2sQ043VSGPXG3ifykLPj8HKD6P0Nn0bgaI8/eOo3JwmVWntzxMJMZyO/CX1NjlIR/D2aOKBoLVZfN4jQnpOalCJYFLbhh5w==","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n d04ac0b5-bc69-471a-5ec5-08dea43e9c47","X-MS-Exchange-CrossTenant-AuthSource":"MN6PR11MB8102.namprd11.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"27 Apr 2026 09:23:15.2313 (UTC)","X-MS-Exchange-CrossTenant-FromEntityHeader":"Hosted","X-MS-Exchange-CrossTenant-Id":"46c98d88-e344-4ed4-8496-4ed7712e255d","X-MS-Exchange-CrossTenant-MailboxType":"HOSTED","X-MS-Exchange-CrossTenant-UserPrincipalName":"\n 6yo+IgFqzIS8LGqQ/LKrYfIg6iW56W6RaCBXviHnWRG0KWk83ZLjEm/5zfLx8fJHzexlXg+6FeLlJQ5MexGX9PE32oFoCBKSadiO3PNBzJ4=","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"PHXPR11MB9637","X-OriginatorOrg":"intel.com","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=1777281808; x=1808817808;\n h=message-id:date:subject:to:cc:references:from:\n in-reply-to:content-transfer-encoding:mime-version;\n bh=2MuR6EmeH0/H0J1mkMNHdDOejHj9jXuTCfvBkJcxick=;\n b=TjmSFaZ4eVH9WoZ3pBWq1PITCMXgXqA0pBvoVl50cDdhLzYE8WB3Wkk7\n 9ubuqsgII6lOJT4MWspoaIhnv6WSLaGZaG+90dsAGs51vqMtobHgLfKXq\n VNEMvdPKv3dwPgr7gy+72YBCbDnKd3wPEg0rxh2bxmWTUpozmRgMnHNra\n OClLsSLDYjNq9DPDxxgvuV6In7ni6y7OHnt9AmgHeU0v5XXEuAnB/Rsb0\n ehmn6Ltpk1jnoLdh3/4lE7/mLrHAQWljDW8haYRz4S4ZKjgmDL9koXqwe\n xLmH/WrIdWwWQj+OQ74jbW+Ww1ju598tfBhen22Z2Y6ETFRcPEFzj2RF/\n w==;","X-Mailman-Original-Authentication-Results":["smtp1.osuosl.org;\n dmarc=pass (p=none dis=none)\n header.from=intel.com","smtp1.osuosl.org;\n dkim=pass (2048-bit key,\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=TjmSFaZ4","dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=intel.com;"],"Subject":"Re: [Intel-wired-lan] [PATCH net v4 3/4] iavf: send MAC change\n request synchronously","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>"}},{"id":3682656,"web_url":"http://patchwork.ozlabs.org/comment/3682656/","msgid":"<20260427113456.1267171-1-jtornosm@redhat.com>","list_archive_url":null,"date":"2026-04-27T11:34:56","subject":"Re: [Intel-wired-lan] [PATCH net v4 3/4] iavf: send MAC change\n request synchronously","submitter":{"id":93070,"url":"http://patchwork.ozlabs.org/api/people/93070/","name":"Jose Ignacio Tornos Martinez","email":"jtornosm@redhat.com"},"content":"Hello Przemek,\n\nThank you again for your comments.\nI will try to include the new ones too in the next version.\nIndeed kdoc \"Return:\" was already commented by you, I will try to address\nall the occurences now.\n\nThanks\n\nBest regards\nJose Ignacio","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=CsAORq+o;\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 4g41hQ2Phyz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 21:35:16 +1000 (AEST)","from localhost (localhost [127.0.0.1])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 15495404F5;\n\tMon, 27 Apr 2026 11:35:14 +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 zymlFQnUuhLD; Mon, 27 Apr 2026 11:35:12 +0000 (UTC)","from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142])\n\tby smtp4.osuosl.org (Postfix) with ESMTP id 419D0404E8;\n\tMon, 27 Apr 2026 11:35:12 +0000 (UTC)","from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists1.osuosl.org (Postfix) with ESMTP id C07901B8\n for <intel-wired-lan@lists.osuosl.org>; Mon, 27 Apr 2026 11:35:10 +0000 (UTC)","from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 9E8FD404E8\n for <intel-wired-lan@lists.osuosl.org>; Mon, 27 Apr 2026 11:35:10 +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 xOlvF-S7Ij9i for <intel-wired-lan@lists.osuosl.org>;\n Mon, 27 Apr 2026 11:35:09 +0000 (UTC)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.129.124])\n by smtp4.osuosl.org (Postfix) with ESMTPS id 88AD84047B\n for <intel-wired-lan@lists.osuosl.org>; Mon, 27 Apr 2026 11:35:08 +0000 (UTC)","from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-217-5jr6GjTLMJ-8MlD7OXhyrQ-1; Mon,\n 27 Apr 2026 07:35:05 -0400","from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.12])\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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id 20CDF19560BF; Mon, 27 Apr 2026 11:35:03 +0000 (UTC)","from fedora.redhat.com (unknown [10.44.32.96])\n by mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id A457D19560B7; Mon, 27 Apr 2026 11:34:58 +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 smtp4.osuosl.org 419D0404E8","OpenDKIM Filter v2.11.0 smtp4.osuosl.org 88AD84047B"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org;\n\ts=default; t=1777289712;\n\tbh=zTmOBQOfI2cC6OKRMtTqpwmhqCYyPD1tqmAV3nNBJko=;\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=CsAORq+olnMv4MLkm6vICtKjAq+FogjEyUla7k+bT8p1qWFRdp+ZwttL3S2j9mEJC\n\t gOSGmWt8ahDiZSkNh7B7TY9cOqGu4JVL1HECfrYNTrjxgSCViiNS4ZAQ801sQj9Mjx\n\t egm0GtiuKN1dF0FGdGcavE/NfRvTDQwY4sdNz+gy0XQVeshWCctK4pwbTyJJ3+8Bcs\n\t Vb/j5+DDbcBEzA1KzbWfUbIaC7WmBIQStra1UzFhYrpZnQaP9hUze1V6DWHSZ3XQEh\n\t h4G2VrswerwJTcRXFhEzkqtHYam87TGzt4Xjw2/wI41ZwoIJGZ+WWi4L+1yOCucjw+\n\t 1jOdO/K4Zrm6A==","Received-SPF":"Pass (mailfrom) identity=mailfrom; client-ip=170.10.129.124;\n helo=us-smtp-delivery-124.mimecast.com; envelope-from=jtornosm@redhat.com;\n receiver=<UNKNOWN>","DMARC-Filter":"OpenDMARC Filter v1.4.2 smtp4.osuosl.org 88AD84047B","X-MC-Unique":"5jr6GjTLMJ-8MlD7OXhyrQ-1","X-Mimecast-MFC-AGG-ID":"5jr6GjTLMJ-8MlD7OXhyrQ_1777289703","From":"Jose Ignacio Tornos Martinez <jtornosm@redhat.com>","To":"przemyslaw.kitszel@intel.com","Cc":"aleksandr.loktionov@intel.com, anthony.l.nguyen@intel.com,\n davem@davemloft.net, edumazet@google.com, horms@kernel.org,\n intel-wired-lan@lists.osuosl.org, jacob.e.keller@intel.com,\n jtornosm@redhat.com, kuba@kernel.org, netdev@vger.kernel.org,\n pabeni@redhat.com","Date":"Mon, 27 Apr 2026 13:34:56 +0200","Message-ID":"<20260427113456.1267171-1-jtornosm@redhat.com>","In-Reply-To":"<d055ed86-89d9-42fd-a881-0384ebfd24f7@intel.com>","References":"<d055ed86-89d9-42fd-a881-0384ebfd24f7@intel.com>","MIME-Version":"1.0","X-Scanned-By":"MIMEDefang 3.0 on 10.30.177.12","X-Mimecast-MFC-PROC-ID":"aNGeH6cF174TYpIFpiA9m-EtOwEInvMG3MX-y9kGlSE_1777289703","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=1777289707;\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=zTmOBQOfI2cC6OKRMtTqpwmhqCYyPD1tqmAV3nNBJko=;\n b=PBRNbPxTo+c0U4LkjEZeAx5nKLbGer9c9pFuzaGk7LLKcZESa39iokPQxXF7IEKfnp129o\n S/7xp4OfhIlet0GpVM5YZGj2/IfqSP9ni8FvBBYz/Lt9KI04WO+/QqsnmJap/tFK5DBhx2\n /g7dM28mxQ8dMTf0quRYg+jAOIEHGgQ=","X-Mailman-Original-Authentication-Results":["smtp4.osuosl.org;\n dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","smtp4.osuosl.org;\n dkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=PBRNbPxT"],"Subject":"Re: [Intel-wired-lan] [PATCH net v4 3/4] iavf: send MAC change\n request synchronously","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>"}}]