From: Baolu Lu <baolu.lu@linux.intel.com>
To: "Tian, Kevin" <kevin.tian@intel.com>,
Joerg Roedel <joro@8bytes.org>,
"Raj, Ashok" <ashok.raj@intel.com>,
Christoph Hellwig <hch@infradead.org>,
Jason Gunthorpe <jgg@nvidia.com>
Cc: Will Deacon <will@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"Pan, Jacob jun" <jacob.jun.pan@intel.com>,
Robin Murphy <robin.murphy@arm.com>
Subject: Re: [PATCH 09/12] iommu/vt-d: Check device list of domain in domain free path
Date: Wed, 1 Jun 2022 19:02:28 +0800 [thread overview]
Message-ID: <0b0d9e4e-f3bb-e47d-20e5-bf380c79f7b4@linux.intel.com> (raw)
In-Reply-To: <BN9PR11MB5276C3D7134CCE64D88F6F048CDF9@BN9PR11MB5276.namprd11.prod.outlook.com>
On 2022/6/1 17:28, Tian, Kevin wrote:
>> From: Lu Baolu <baolu.lu@linux.intel.com>
>> Sent: Friday, May 27, 2022 2:30 PM
>>
>> When the IOMMU domain is about to be freed, it should not be set on any
>> device. Instead of silently dealing with some bug cases, it's better to
>> trigger a warning to report and fix any potential bugs at the first time.
>>
>
>
>> static void domain_exit(struct dmar_domain *domain)
>> {
>> -
>> - /* Remove associated devices and clear attached or cached domains
>> */
>> - domain_remove_dev_info(domain);
>> + if (WARN_ON(!list_empty(&domain->devices)))
>> + return;
>>
>
> warning is good but it doesn't mean the driver shouldn't deal with
> that situation to make it safer e.g. blocking DMA from all attached
> device...
I have ever thought the same thing. :-)
Blocking DMA from attached device should be done when setting blocking
domain to the device. It should not be part of freeing a domain.
Here, the caller asks the driver to free the domain, but the driver
finds that something is wrong. Therefore, it warns and returns directly.
The domain will still be there in use until the next set_domain().
Best regards,
baolu
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2022-06-01 11:02 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-27 6:30 [PATCH 00/12] iommu/vt-d: Optimize the use of locks Lu Baolu
2022-05-27 6:30 ` [PATCH 01/12] iommu/vt-d: Use iommu_get_domain_for_dev() in debugfs Lu Baolu
2022-05-27 14:59 ` Jason Gunthorpe via iommu
2022-05-29 5:14 ` Baolu Lu
2022-05-30 12:14 ` Jason Gunthorpe via iommu
2022-05-31 3:02 ` Baolu Lu
2022-05-31 13:10 ` Jason Gunthorpe via iommu
2022-05-31 14:11 ` Baolu Lu
2022-05-31 14:53 ` Jason Gunthorpe via iommu
2022-05-31 15:01 ` Robin Murphy
2022-05-31 15:13 ` Jason Gunthorpe via iommu
2022-05-31 16:01 ` Robin Murphy
2022-05-31 16:21 ` Jason Gunthorpe via iommu
2022-05-31 18:07 ` Robin Murphy
2022-05-31 18:51 ` Jason Gunthorpe via iommu
2022-05-31 21:22 ` Robin Murphy
2022-05-31 23:10 ` Jason Gunthorpe via iommu
2022-06-01 8:53 ` Tian, Kevin
2022-06-01 12:18 ` Joao Martins
2022-06-01 12:33 ` Jason Gunthorpe via iommu
2022-06-01 13:52 ` Joao Martins
2022-06-01 14:22 ` Jason Gunthorpe via iommu
2022-06-01 6:39 ` Baolu Lu
2022-05-31 13:52 ` Robin Murphy
2022-05-31 15:59 ` Jason Gunthorpe via iommu
2022-05-31 16:42 ` Robin Murphy
2022-06-01 5:47 ` Baolu Lu
2022-06-01 5:33 ` Baolu Lu
2022-05-27 6:30 ` [PATCH 02/12] iommu/vt-d: Remove for_each_device_domain() Lu Baolu
2022-05-27 15:00 ` Jason Gunthorpe via iommu
2022-06-01 8:53 ` Tian, Kevin
2022-05-27 6:30 ` [PATCH 03/12] iommu/vt-d: Remove clearing translation data in disable_dmar_iommu() Lu Baolu
2022-05-27 15:01 ` Jason Gunthorpe via iommu
2022-05-29 5:22 ` Baolu Lu
2022-05-27 6:30 ` [PATCH 04/12] iommu/vt-d: Use pci_get_domain_bus_and_slot() in pgtable_walk() Lu Baolu
2022-05-27 15:01 ` Jason Gunthorpe via iommu
2022-06-01 8:56 ` Tian, Kevin
2022-05-27 6:30 ` [PATCH 05/12] iommu/vt-d: Unncessary spinlock for root table alloc and free Lu Baolu
2022-06-01 9:05 ` Tian, Kevin
2022-05-27 6:30 ` [PATCH 06/12] iommu/vt-d: Acquiring lock in domain ID allocation helpers Lu Baolu
2022-06-01 9:09 ` Tian, Kevin
2022-06-01 10:38 ` Baolu Lu
2022-05-27 6:30 ` [PATCH 07/12] iommu/vt-d: Acquiring lock in pasid manipulation helpers Lu Baolu
2022-06-01 9:18 ` Tian, Kevin
2022-06-01 10:48 ` Baolu Lu
2022-05-27 6:30 ` [PATCH 08/12] iommu/vt-d: Replace spin_lock_irqsave() with spin_lock() Lu Baolu
2022-05-27 6:30 ` [PATCH 09/12] iommu/vt-d: Check device list of domain in domain free path Lu Baolu
2022-05-27 15:05 ` Jason Gunthorpe via iommu
2022-06-01 9:28 ` Tian, Kevin
2022-06-01 11:02 ` Baolu Lu [this message]
2022-06-02 6:29 ` Tian, Kevin
2022-06-06 1:34 ` Baolu Lu
2022-05-27 6:30 ` [PATCH 10/12] iommu/vt-d: Fold __dmar_remove_one_dev_info() into its caller Lu Baolu
2022-05-27 6:30 ` [PATCH 11/12] iommu/vt-d: Use device_domain_lock accurately Lu Baolu
2022-05-27 6:30 ` [PATCH 12/12] iommu/vt-d: Convert device_domain_lock into per-domain mutex Lu Baolu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0b0d9e4e-f3bb-e47d-20e5-bf380c79f7b4@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=ashok.raj@intel.com \
--cc=hch@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=jacob.jun.pan@intel.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox