RE: [PATCH v7 4/5] iommu: Support mm PASID 1:n with sva domains

From: Zhang, Tina
Date: Fri Oct 13 2023 - 05:57:42 EST


Hi,

> -----Original Message-----
> From: Jason Gunthorpe <jgg@xxxxxxxx>
> Sent: Thursday, October 12, 2023 9:43 PM
> To: Zhang, Tina <tina.zhang@xxxxxxxxx>
> Cc: Tian, Kevin <kevin.tian@xxxxxxxxx>; Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx>;
> Michael Shavit <mshavit@xxxxxxxxxx>; Vasant Hegde
> <vasant.hegde@xxxxxxx>; Nicolin Chen ^C-cc=iommu @ lists . linux . dev
> <nicolinc@xxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v7 4/5] iommu: Support mm PASID 1:n with sva domains
>
> On Thu, Oct 12, 2023 at 11:01:11AM +0800, Tina Zhang wrote:
>
> > @@ -1188,15 +1193,26 @@ static inline bool
> > tegra_dev_iommu_get_stream_id(struct device *dev, u32 *stream #ifdef
> > CONFIG_IOMMU_SVA static inline void mm_pasid_init(struct mm_struct
> > *mm) {
> > - mm->pasid = IOMMU_PASID_INVALID;
> > + /*
> > + * During dup_mm(), a new mm will be memcpy'd from an old one
> and that makes
> > + * the new mm and the old one point to a same iommu_mm
> instance. When either
> > + * one of the two mms gets released, the iommu_mm instance is
> freed, leaving
> > + * the other mm running into a use-after-free/double-free problem.
> To avoid
> > + * the problem, zeroing the iommu_mm pointer of a new mm is
> needed here.
> > + */
> > + mm->iommu_mm = NULL;
> > }
>
> newlines after all the }, between functions doesn't checkpatch complain?
Checked with checkpatch but didn't see any complaining.

>
> IMHO this hunk should be moved to the prior patch.
In this patch, we switch to use mm->iommu_mm. That's why the iommu_mm initialization is put in this patch.

I think I met some problem about my mailbox when I was sending this new version. It didn't cc iommu@xxxxxxxxxxxxxxx. Should I resend this version again or reply to the patches with iommu@xxxxxxxxxxxxxxx cc'd?

Regards,
-Tina
>
> But it all looks good to me now
>
> Thanks,
> Jason