Hi, Baolu,

On Thu, Sep 23, 2021 at 01:43:32PM +0800, Lu Baolu wrote:
> On 9/21/21 3:23 AM, Fenghua Yu wrote:
> > +void pasid_put(struct task_struct *tsk, struct mm_struct *mm)
> > +{
> > +   if (!cpu_feature_enabled(X86_FEATURE_ENQCMD))
> > +           return;
> > +
> > +   /*
> > +    * Nothing to do if this task doesn't have a reference to the PASID.
> > +    */
> > +   if (tsk->has_valid_pasid) {
> > +           mutex_lock(&pasid_mutex);
> > +           /*
> > +            * The PASID's reference was taken during fix up. Release it
> > +            * now. If the reference count is 0, the PASID is freed.
> > +            */
> > +           iommu_sva_free_pasid(mm);
> > +           mutex_unlock(&pasid_mutex);
> > +   }
> > +}
> > 
> 
> It looks odd that both __fixup_pasid_exception() and pasid_put() are
> defined in the vendor IOMMU driver, but get called in the arch/x86
> code.
> 
> Is it feasible to move these two helpers to the files where they are
> called? The IA32_PASID MSR fixup and release are not part of the IOMMU
> implementation.

Sure. The functions will be removed in the next version. And new functions
will not be called in IOMMU driver.

Thanks.

-Fenghua
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to