[{"id":3681313,"web_url":"http://patchwork.ozlabs.org/comment/3681313/","msgid":"<3570e178-f887-45c9-a251-e089915cfbd9@linux.intel.com>","list_archive_url":null,"date":"2026-04-23T07:55:02","subject":"Re: [PATCH v3 06/11] iommu: Defer __iommu_group_free_device() to be\n outside group->mutex","submitter":{"id":73538,"url":"http://patchwork.ozlabs.org/api/people/73538/","name":"Baolu Lu","email":"baolu.lu@linux.intel.com"},"content":"On 4/17/26 07:28, Nicolin Chen wrote:\n> __iommu_group_remove_device() holds group->mutex across the entire call to\n> __iommu_group_free_device() that performs sysfs removals, tracing, and the\n> final kfree_rcu(). But in fact, most of these operations don't really need\n> the group->mutex.\n> \n> The group_device structure will support a work_struct to quarantine broken\n> devices asynchronously. The work function must hold group->mutex to safely\n> update group state. cancel_work_sync() must be called, to cancel that work\n> before freeing the device. But doing so under group->mutex would deadlock\n> if the worker is already running and waiting to acquire the same lock.\n> \n> Separate the assertion from __iommu_group_free_device() to another helper\n> __iommu_group_empty_assert_owner_cnt().\n> \n> Defer the __iommu_group_free_device() until the mutex is released.\n> \n> This is a preparatory refactor with no functional change.\n> \n> Signed-off-by: Nicolin Chen<nicolinc@nvidia.com>\n> ---\n>   drivers/iommu/iommu.c | 35 +++++++++++++++++++++++------------\n>   1 file changed, 23 insertions(+), 12 deletions(-)\n> \n> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c\n> index d1be62a07904a..810e7b94a1ae2 100644\n> --- a/drivers/iommu/iommu.c\n> +++ b/drivers/iommu/iommu.c\n> @@ -627,6 +627,19 @@ static struct iommu_domain *pasid_array_entry_to_domain(void *entry)\n>   \n>   DEFINE_MUTEX(iommu_probe_device_lock);\n>   \n> +static void __iommu_group_empty_assert_owner_cnt(struct iommu_group *group)\n> +{\n> +\tlockdep_assert_held(&group->mutex);\n> +\t/*\n> +\t * If the group has become empty then ownership must have been\n> +\t * released, and the current domain must be set back to NULL or\n> +\t * the default domain.\n> +\t */\n\nNit: this comment doesn't quite match the following code. The code\ndoesn't check \"group->domain != NULL\". Or perhaps in that case,\ngroup->default_domain must be NULL?\n\nFurthermore, if a device is currently quarantined, group->domain will be\nthe blocking_domain. If that quarantined device is then hot-removed and\nhappens to be the last device in the group, will this WARN_ON trigger\nunnecessarily?\n\n> +\tif (list_empty(&group->devices))\n> +\t\tWARN_ON(group->owner_cnt ||\n> +\t\t\tgroup->domain != group->default_domain);\n> +}\n> +\n>   static int __iommu_probe_device(struct device *dev, struct list_head *group_list)\n>   {\n>   \tstruct iommu_group *group;\n\nThanks,\nbaolu","headers":{"Return-Path":"\n <linux-pci+bounces-53036-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=KNFyRdVp;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-53036-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"KNFyRdVp\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=198.175.65.13","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.intel.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\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 4g1T360L7Wz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 17:57:38 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id B25533016525\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 07:57:17 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 41B5D339705;\n\tThu, 23 Apr 2026 07:57:16 +0000 (UTC)","from mgamail.intel.com (mgamail.intel.com [198.175.65.13])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id D9B7833D6C7;\n\tThu, 23 Apr 2026 07:57:14 +0000 (UTC)","from fmviesa003.fm.intel.com ([10.60.135.143])\n  by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Apr 2026 00:57:13 -0700","from allen-sbox.sh.intel.com (HELO [10.239.159.30])\n ([10.239.159.30])\n  by fmviesa003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Apr 2026 00:57:07 -0700"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776931036; cv=none;\n b=Br9xeVJO+ydVP+7F/TRKy6FyRr4fSObl+22gjzUYyBPJiqF7OugtJd3RNizw+dsHJoXMXRFNHGqlpCuaXHszePjHEurjkTX8mM029RaYgTLCPJXALCk2njAVrcN6xo3cWKawYBHCvXuqGWHtH+ZEZFPODFjWWHWGo93gaZZyn/w=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776931036; c=relaxed/simple;\n\tbh=CHTAO9l3j2AN2pRGlpx8AfN1p1NSocg7+Jj7C8dbzU0=;\n\th=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From:\n\t In-Reply-To:Content-Type;\n b=emgm7OUtaDmCS/l3PwmBtd7ygi5Tev+fDA3GxvGVlsWIqh7EAmC957FQ+iLD+9fxWDVGdcf3L4Auc6Gt745tLn4H1Ylj0TYYkaQlXnvg46hCKfDuq3QjVFty6nY3oonRlqQmZUJwz0SVSK7ayDkLckZ24DbBxYeDWwpn6q2r04I=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com;\n spf=pass smtp.mailfrom=linux.intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=KNFyRdVp; arc=none smtp.client-ip=198.175.65.13","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple;\n  d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n  t=1776931035; x=1808467035;\n  h=message-id:date:mime-version:subject:to:cc:references:\n   from:in-reply-to:content-transfer-encoding;\n  bh=CHTAO9l3j2AN2pRGlpx8AfN1p1NSocg7+Jj7C8dbzU0=;\n  b=KNFyRdVpV5hq3g9CLzq8kyg0ggAF6oAT5zpaHHO/JbY/qlRfbbaq2Hvx\n   U40O9+Th3+a30BOfjeJxJS3gWBemUNPjISEasxLTETOAADgl7r9uByraf\n   kcRrhZVEo+ZhVh/PP96bu7vzHmeyJk3MT/1/oF//jeNwSpvksFe8+kVSy\n   kZymerj/nha+j+bP8alDxN1muHVTGiLABl4G/gryurPuw2Rkw2Odiiuth\n   ErfVGqIBAprxBfHOu71s7SisboNfpk0weJsx8GnPvtsBWhgmR0AFPaui2\n   ooS2GYrPDS4tqEbEmQWmRuJa9X3MH3T5a2itjhRoE+2VqUCI/UQxe/zeG\n   g==;","X-CSE-ConnectionGUID":["kGWy7ef8QM2otx76RCAaag==","iwunEYo2TdexK5dTlOoruQ=="],"X-CSE-MsgGUID":["s7gTKxtKTQ2ttLQ6rMr4XQ==","ojBjABX+T/Olmr4XoENCbA=="],"X-IronPort-AV":["E=McAfee;i=\"6800,10657,11764\"; a=\"88975263\"","E=Sophos;i=\"6.23,194,1770624000\";\n   d=\"scan'208\";a=\"88975263\""],"X-ExtLoop1":"1","Message-ID":"<3570e178-f887-45c9-a251-e089915cfbd9@linux.intel.com>","Date":"Thu, 23 Apr 2026 15:55:02 +0800","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v3 06/11] iommu: Defer __iommu_group_free_device() to be\n outside group->mutex","To":"Nicolin Chen <nicolinc@nvidia.com>, Will Deacon <will@kernel.org>,\n Robin Murphy <robin.murphy@arm.com>, Joerg Roedel <joro@8bytes.org>,\n Bjorn Helgaas <bhelgaas@google.com>, Jason Gunthorpe <jgg@nvidia.com>","Cc":"\"Rafael J . Wysocki\" <rafael@kernel.org>, Len Brown <lenb@kernel.org>,\n Pranjal Shrivastava <praan@google.com>, Mostafa Saleh <smostafa@google.com>,\n Kevin Tian <kevin.tian@intel.com>, linux-arm-kernel@lists.infradead.org,\n iommu@lists.linux.dev, linux-kernel@vger.kernel.org,\n linux-acpi@vger.kernel.org, linux-pci@vger.kernel.org, vsethi@nvidia.com,\n Shuai Xue <xueshuai@linux.alibaba.com>","References":"<cover.1776381841.git.nicolinc@nvidia.com>\n <3f5d229267d1f4d918641bc5b896f54b5c4b7782.1776381841.git.nicolinc@nvidia.com>","Content-Language":"en-US","From":"Baolu Lu <baolu.lu@linux.intel.com>","In-Reply-To":"\n <3f5d229267d1f4d918641bc5b896f54b5c4b7782.1776381841.git.nicolinc@nvidia.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit"}},{"id":3681543,"web_url":"http://patchwork.ozlabs.org/comment/3681543/","msgid":"<aeo/BDwYM9yYHctI@Asurada-Nvidia>","list_archive_url":null,"date":"2026-04-23T15:47:16","subject":"Re: [PATCH v3 06/11] iommu: Defer __iommu_group_free_device() to be\n outside group->mutex","submitter":{"id":82183,"url":"http://patchwork.ozlabs.org/api/people/82183/","name":"Nicolin Chen","email":"nicolinc@nvidia.com"},"content":"On Thu, Apr 23, 2026 at 03:55:02PM +0800, Baolu Lu wrote:\n> On 4/17/26 07:28, Nicolin Chen wrote:\n> > +static void __iommu_group_empty_assert_owner_cnt(struct iommu_group *group)\n> > +{\n> > +\tlockdep_assert_held(&group->mutex);\n> > +\t/*\n> > +\t * If the group has become empty then ownership must have been\n> > +\t * released, and the current domain must be set back to NULL or\n> > +\t * the default domain.\n> > +\t */\n> \n> Nit: this comment doesn't quite match the following code. The code\n> doesn't check \"group->domain != NULL\". Or perhaps in that case,\n> group->default_domain must be NULL?\n\nThis is the original patch from Jason:\nhttps://lore.kernel.org/r/4-v3-328044aa278c+45e49-iommu_probe_jgg@nvidia.com\n\nI kept the comments as-is, though It might be slightly confusing?\n\nI think it means:\nIf group->default_domain == NULL, it does check \"set back to NULL\".\nIf group->default_domain != NULL, it then checks \"default domain\".\n\nMaybe it could be \"must be set back to the default domain (which\nitself can be NULL\"?\n\n> Furthermore, if a device is currently quarantined, group->domain will be\n> the blocking_domain. If that quarantined device is then hot-removed and\n> happens to be the last device in the group, will this WARN_ON trigger\n> unnecessarily?\n\nIf a device is quarantined, its group->domain is retained to the\npreviously attached domain. Its blocking state is logged in the\ngdev->blocked flag. So, I think it can pass the test.\n\nThanks\nNicolin","headers":{"Return-Path":"\n <linux-pci+bounces-53050-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256\n header.s=selector2 header.b=poqKwhmE;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-53050-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=\"poqKwhmE\"","smtp.subspace.kernel.org;\n arc=fail smtp.client-ip=52.101.48.12","smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com","smtp.subspace.kernel.org;\n spf=fail smtp.mailfrom=nvidia.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\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 4g1gTp2NKqz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 01:47:58 +1000 (AEST)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 28C7D3019526\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 15:47:53 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 7073136897E;\n\tThu, 23 Apr 2026 15:47:52 +0000 (UTC)","from MW6PR02CU001.outbound.protection.outlook.com\n (mail-westus2azon11012012.outbound.protection.outlook.com [52.101.48.12])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id EC96E35966;\n\tThu, 23 Apr 2026 15:47:50 +0000 (UTC)","from CY5PR10CA0028.namprd10.prod.outlook.com (2603:10b6:930:1c::21)\n by CY1PR12MB9582.namprd12.prod.outlook.com (2603:10b6:930:fe::17) with\n 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 15:47:44 +0000","from CY4PEPF0000E9D6.namprd05.prod.outlook.com\n (2603:10b6:930:1c:cafe::89) by CY5PR10CA0028.outlook.office365.com\n (2603:10b6:930:1c::21) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.22 via Frontend Transport; Thu,\n 23 Apr 2026 15:47:43 +0000","from mail.nvidia.com (216.228.117.160) by\n CY4PEPF0000E9D6.mail.protection.outlook.com (10.167.241.69) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9846.18 via Frontend Transport; Thu, 23 Apr 2026 15:47:43 +0000","from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 23 Apr\n 2026 08:47:19 -0700","from rnnvmail204.nvidia.com (10.129.68.6) by rnnvmail202.nvidia.com\n (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Thu, 23 Apr\n 2026 08:47:19 -0700","from Asurada-Nvidia (10.127.8.12) by mail.nvidia.com (10.129.68.6)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20 via Frontend\n Transport; Thu, 23 Apr 2026 08:47:17 -0700"],"ARC-Seal":["i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1776959272; cv=fail;\n b=bcT2Y7IhcjdX4DgvUyss2uKFKGieGM2aOZzOvH5RmFREOjuO4gqQuqndJdEM9Sac5uehosgrCAPf2NRalVZM+nNNs8wFVyUfmsGcHTaicJeBXFH3zhZgux84rq09KLQi5GgHU+rVmeSNBv+82W6Vx8qWyOy4Lb7EqKosius94rY=","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=lgfzzNRR1/8JHuOyYM0SqXmMx7XeQZrjZj4FLuQcAwfZVczExaIPpt49lDHklcDa+cbdBur/F5WeQI1yaLsvt/+Hxcggkb2v+flTXeOgVMDVnC/ZGA/cFx5y0C4vXHRf4RYvrapqNYs2TWew6en2NNhxQRttuJjZujpKPKc2U18GhqmxvGjZ43GeI7/OXtyD6qBaOvTUErfUacyCIJ//lfzxcLhnKgdtcayESeIKftVz2oOH5m0N6C6Ui6xtrxnYuDSsAHl4E3iUjHPl0ef8XMu1PpxE+JX0L2ldWM5cTgHqZU3QStuHfzkjnzDlm5bJsbK403rzNOQmEZm1EtlSEg=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1776959272; c=relaxed/simple;\n\tbh=PRmT//+U6fgEKyidfzvEpAgCO2/CRCiDvhjHwhohYC0=;\n\th=Date:From:To:CC:Subject:Message-ID:References:MIME-Version:\n\t Content-Type:Content-Disposition:In-Reply-To;\n b=i/vTzC/M3Ee6LHaGT+uiRYdbRLCTPcILP8Ti8gixn+MEF9p1HkaUrJfExo11j/YXeQKX4XCf3q+210H+GVEB9g0yp17K9dv4chpzNLlkdcnHBFGK5luqKdLVxBLCm1R9hqt2IsHbZxIImTlFoTMrW8u/9G968Vhp8qNsx6dQppk=","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=dC7DNEvH2Dc5r5NO1YFZU4U6vzo4Vxa0qfuO1PHkhoE=;\n b=scNcioX8QPK9zzmDjyw/PBTSQQb0tNT5i+3ETrIHvhcMqUL+Lb5DRPUAy/N2H1caqcxkKv97p3EWDNQllD97B7/p4tQAwfZ9SHAXLoJmBSjcTCMNB6BCFHhqPZQ8ifyAqBDUCFET8i79UUemU85UrO5m0PaUXouSJfAKsk4cbJXaWEKwavRGusj551dsDV6gvPYExA5Thvz3uF/b68HMV1fQg5zY2QghuWWeYWLMPbo0pUl4MnutQG1DIlGw50sQ013UUJsNyEchtkoLmaAOHadX3vwhrRLYA/4JOKFmk1XgJ9etXSxVwbDr7T7AVE4wTxDUxG1lUFroorQRQB0g5g=="],"ARC-Authentication-Results":["i=2; smtp.subspace.kernel.org;\n dmarc=pass (p=reject dis=none) header.from=nvidia.com;\n spf=fail smtp.mailfrom=nvidia.com;\n dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com\n header.b=poqKwhmE; arc=fail smtp.client-ip=52.101.48.12","i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=linux.intel.com smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=dC7DNEvH2Dc5r5NO1YFZU4U6vzo4Vxa0qfuO1PHkhoE=;\n b=poqKwhmEjjJWr/tA0FBURpZOnSW7lwkHum4WZ3MEpljQRRmQ6RBXI2DRvHgmYn8lqweAZFiAjYZhKJRdDc0XKV4RCwQkaYXulY5w19MfV1XvTap3RXdePrwebv4xU8TqdvYpdTXSIXnKGG2CXqjYpZ2Gn2bfD+Xycz33v1uZSrQw8Xig4huq2JIplFQro/QR+SnEBUC4DGAlHQZPmkDYvP6YsBxxjx8ql3g+I45W6ouJKyOeE9IDFzKigibtGHmGFfWnrhUE/dUJMlVT7/obPMCD+tIqTjci+CPr7c388dahz2IOKxdPQ3BR+cDULoaMVG5rYt+/1PPsoD2bzblAjw==","X-MS-Exchange-Authentication-Results":"spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;","Received-SPF":"Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C","Date":"Thu, 23 Apr 2026 08:47:16 -0700","From":"Nicolin Chen <nicolinc@nvidia.com>","To":"Baolu Lu <baolu.lu@linux.intel.com>","CC":"Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>, \"Joerg\n Roedel\" <joro@8bytes.org>, Bjorn Helgaas <bhelgaas@google.com>, \"Jason\n Gunthorpe\" <jgg@nvidia.com>, \"Rafael J . Wysocki\" <rafael@kernel.org>, \"Len\n Brown\" <lenb@kernel.org>, Pranjal Shrivastava <praan@google.com>, \"Mostafa\n Saleh\" <smostafa@google.com>, Kevin Tian <kevin.tian@intel.com>,\n\t<linux-arm-kernel@lists.infradead.org>, <iommu@lists.linux.dev>,\n\t<linux-kernel@vger.kernel.org>, <linux-acpi@vger.kernel.org>,\n\t<linux-pci@vger.kernel.org>, <vsethi@nvidia.com>, Shuai Xue\n\t<xueshuai@linux.alibaba.com>","Subject":"Re: [PATCH v3 06/11] iommu: Defer __iommu_group_free_device() to be\n outside group->mutex","Message-ID":"<aeo/BDwYM9yYHctI@Asurada-Nvidia>","References":"<cover.1776381841.git.nicolinc@nvidia.com>\n <3f5d229267d1f4d918641bc5b896f54b5c4b7782.1776381841.git.nicolinc@nvidia.com>\n <3570e178-f887-45c9-a251-e089915cfbd9@linux.intel.com>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Disposition":"inline","In-Reply-To":"<3570e178-f887-45c9-a251-e089915cfbd9@linux.intel.com>","X-NV-OnPremToCloud":"ExternallySecured","X-EOPAttributedMessage":"0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"CY4PEPF0000E9D6:EE_|CY1PR12MB9582:EE_","X-MS-Office365-Filtering-Correlation-Id":"add238e4-2238-4d2a-6b6a-08dea14fa898","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"\n\tBCL:0;ARA:13230040|82310400026|7416014|376014|36860700016|1800799024|13003099007|56012099003|18002099003|22082099003;","X-Microsoft-Antispam-Message-Info":"\n\tFvJEpaecXYOhepOdyGIeR10eRmgp/o+6zOAENSVvrO2H0IzNpMeDK5o96/XYLfiNSO8YTSW10O8y5OPjG25j8fAFIXntgQRfpLOjP2lZ2IcR/3dYbZ09jvP3TeBQO6hFlVnPYJp6XJWfCqn0JqemBIBgIsmd9NsJjWRlH8bNL84/QUVy7Y2b09HiFBtDwKN+JPbn98sResqA/HszuGKAw+q0RIN3PS4ZqFL+JEJgN7zi/HDsivAooUk2NjQ8O7REjgE5dtWpOSmafBffiZYnA461aqvrU3px6DtJ8DDLtbByk7dEU5ix6Og+e7b+oqH4uqfD5Ts14r1Hqq8CNkaOiLiLyW5kMbooPCoQZI02zoKU8L8r6FOlNED65wFaM9BXVy4n+1sIHHLyALLT23X/QyTJjW84zPiOr95SkdbODWJ+JR39GNuJvxKQpOLDgWIsoyegtSIy7dC9yJczXJcQstaABcWCw4ukaC39edxs5MLj4ws46kO+u+3FqDzDZT83N6rb0stnVNYogWlUHDZOpS6MqkfwDfY12Cvwkgyc8RPn3uUExcZ8VUgV5bSauc8CTIubzGOUl6WMhlnZzS7vpC7O2md2Y2x46LXf/m6GStwFem6FEUWgaZTWwFNqPi/jBO8qhDpYv7B842d6Ov7cQ61qVz8+26uaz9IpbuR0K+GAHhKCsxBd08WGvHQUprmTbm9+LgRiiTwkQXIGJLpNJnVaXHK2ZFoSNpBmwhPz3oyX/9Rv/cqrFl+fADhmlx5iBVoEqUOIVJwXR9quHJX/Dg==","X-Forefront-Antispam-Report":"\n\tCIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(7416014)(376014)(36860700016)(1800799024)(13003099007)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101;","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"\n\tO5VG5Rzpiv5WCql5oNpBf+/zZ12wKn55sJRj2Inj6bq6p+JyshRYeerh2onACbj1CfUeTvS3+9YCTVQJFS6Va3MPwvrVlAa7PTPwUXdHIp2SY+dSojzlb3zN9RJoucu+ED1ZJ/LBGyzkB91GAeXaKz33e4x3X+XqEYYUaL8SP7PZF50iL5natFnCc86uEv5BU1A+HEOFfW/8gUj2/x+2P68AHYV0w+SG+Hnvzuh1GEu1lZ9Y4TuGiwBlFkxpNNuO2s/oj7fHvK53ad4l6ElOCbNtVpCXem+RJ9hqk3x8izeusgvktxZtaRbgP2t9LjCnKVuAqIk5izTyO3XQX545hoS84nJZLnHRPOGWSQpi9s3HXzSaDM69BnFUjfoeZTqTrElQod+flFrF71e06dJ3sQl3MI9ezOtPjNSrwLkHvZsNvpXwrqfxvB19u+pPdWPv","X-OriginatorOrg":"Nvidia.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"23 Apr 2026 15:47:43.4935\n (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n add238e4-2238-4d2a-6b6a-08dea14fa898","X-MS-Exchange-CrossTenant-Id":"43083d15-7273-40c1-b7db-39efd9ccc17a","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com]","X-MS-Exchange-CrossTenant-AuthSource":"\n\tCY4PEPF0000E9D6.namprd05.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Anonymous","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"CY1PR12MB9582"}}]