Re: [PATCH v7 2/4] vfio: ap: register IOMMU VFIO notifier
From: Halil Pasic
Date: Tue Apr 30 2019 - 05:29:35 EST
On Tue, 30 Apr 2019 09:59:51 +0200
Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote:
> On 29/04/2019 18:07, Halil Pasic wrote:
> > On Fri, 26 Apr 2019 15:01:26 +0200
> > Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote:
> >
> >> @@ -858,7 +887,17 @@ static int vfio_ap_mdev_open(struct mdev_device *mdev)
> >> return ret;
> >> }
> >>
> >> - return 0;
> >> + matrix_mdev->iommu_notifier.notifier_call = vfio_ap_mdev_iommu_notifier;
> >> + events = VFIO_IOMMU_NOTIFY_DMA_UNMAP;
> >> + ret = vfio_register_notifier(mdev_dev(mdev), VFIO_IOMMU_NOTIFY,
> >> + &events, &matrix_mdev->iommu_notifier);
> >> + if (!ret)
> >> + return ret;
> >> +
> >> + vfio_unregister_notifier(mdev_dev(mdev), VFIO_GROUP_NOTIFY,
> >> + &matrix_mdev->group_notifier);
> >> + module_put(THIS_MODULE);
> >
> > Can you please explain this module_put() here? I don't see anything in
> > the cover letter.
>
> May be you should have a look at the sources or the original patch
> series of Tony, there is a try_module_get() at the beginning of open to
> make sure that the module is not taken away while in use by the guest.
>
> In the case we failed to open the mediated device we let fall the reference.
>
Right, my bad. I did not notice we were on the error recovery path.
Regards,
Halil