[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <83c02530-230a-4ae0-8853-5da95c0ee814@linux.intel.com>
Date: Thu, 11 Apr 2024 21:13:17 +0800
From: Baolu Lu <baolu.lu@...ux.intel.com>
To: Jason Gunthorpe <jgg@...pe.ca>
Cc: baolu.lu@...ux.intel.com, Joerg Roedel <joro@...tes.org>,
Will Deacon <will@...nel.org>, Robin Murphy <robin.murphy@....com>,
Kevin Tian <kevin.tian@...el.com>, Tina Zhang <tina.zhang@...el.com>,
Yi Liu <yi.l.liu@...el.com>, iommu@...ts.linux.dev,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 12/12] iommu/vt-d: Retire struct intel_svm
On 2024/4/11 21:07, Jason Gunthorpe wrote:
>> +static void intel_mm_free_notifier(struct mmu_notifier *mn)
>> +{
>> + kfree(container_of(mn, struct dmar_domain, notifier));
>> +}
>> +
>> static const struct mmu_notifier_ops intel_mmuops = {
>> .release = intel_mm_release,
>> .arch_invalidate_secondary_tlbs =
>> intel_arch_invalidate_secondary_tlbs,
>> + .free_notifier = intel_mm_free_notifier,
>> };
>>
>> static int intel_svm_set_dev_pasid(struct iommu_domain *domain,
>> @@ -598,10 +604,8 @@ static void intel_svm_domain_free(struct iommu_domain
>> *domain)
>> {
>> struct dmar_domain *dmar_domain = to_dmar_domain(domain);
>>
>> - if (dmar_domain->notifier.ops)
>> - mmu_notifier_unregister(&dmar_domain->notifier, domain->mm);
>> -
>> - kfree(dmar_domain);
>> + /* dmar_domain free is defered to the mmu free_notifier callback. */
>> + mmu_notifier_put(&dmar_domain->notifier);
>> }
> Yeah, that is better.
>
> Also you need to have mmu notifier call on module unload when using
> this scheme.
The Intel IOMMU driver doesn't support being a module. It's always
built-in.
Best regards,
baolu
Powered by blists - more mailing lists