Message ID | 20231103171641.1703146-9-lulu@redhat.com (mailing list archive) |
---|---|
State | RFC |
Headers | show |
Series | vhost-vdpa: add support for iommufd | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Not a local patch |
On Sat, Nov 04, 2023 at 01:16:41AM +0800, Cindy Lu wrote: > Expose the function iommu_device_use_default_domain() and > iommu_device_unuse_default_domain(), > While vdpa bind the iommufd device and detach the iommu device, > vdpa need to call the function > iommu_device_unuse_default_domain() to release the owner Definately not. You need to set the driver_managed_dma flag. Jason
On Sat, Nov 4, 2023 at 1:18 AM Cindy Lu <lulu@redhat.com> wrote: > > Expose the function iommu_device_use_default_domain() and > iommu_device_unuse_default_domain(), > While vdpa bind the iommufd device and detach the iommu device, > vdpa need to call the function > iommu_device_unuse_default_domain() to release the owner > > Signed-off-by: Cindy Lu <lulu@redhat.com> This is the end of the series, who is the user then? Thanks > --- > drivers/iommu/iommu.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index 3bfc56df4f78..987cbf8c9a87 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -3164,6 +3164,7 @@ int iommu_device_use_default_domain(struct device *dev) > > return ret; > } > +EXPORT_SYMBOL_GPL(iommu_device_use_default_domain); > > /** > * iommu_device_unuse_default_domain() - Device driver stops handling device > @@ -3187,6 +3188,7 @@ void iommu_device_unuse_default_domain(struct device *dev) > mutex_unlock(&group->mutex); > iommu_group_put(group); > } > +EXPORT_SYMBOL_GPL(iommu_device_unuse_default_domain); > > static int __iommu_group_alloc_blocking_domain(struct iommu_group *group) > { > -- > 2.34.3 >
On Mon, Nov 6, 2023 at 3:26 PM Jason Wang <jasowang@redhat.com> wrote: > > On Sat, Nov 4, 2023 at 1:18 AM Cindy Lu <lulu@redhat.com> wrote: > > > > Expose the function iommu_device_use_default_domain() and > > iommu_device_unuse_default_domain(), > > While vdpa bind the iommufd device and detach the iommu device, > > vdpa need to call the function > > iommu_device_unuse_default_domain() to release the owner > > > > Signed-off-by: Cindy Lu <lulu@redhat.com> > > This is the end of the series, who is the user then? > > Thanks > hi Jason These 2 functions was called in vhost_vdpa_iommufd_set_device(), Vdpa need to release the dma owner, otherwise, the function will fail when iommufd called iommu_device_claim_dma_owner() in iommufd_device_bind() I will change this sequence, Or maybe will find some other way to fix this problem thanks cindy > > --- > > drivers/iommu/iommu.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > > index 3bfc56df4f78..987cbf8c9a87 100644 > > --- a/drivers/iommu/iommu.c > > +++ b/drivers/iommu/iommu.c > > @@ -3164,6 +3164,7 @@ int iommu_device_use_default_domain(struct device *dev) > > > > return ret; > > } > > +EXPORT_SYMBOL_GPL(iommu_device_use_default_domain); > > > > /** > > * iommu_device_unuse_default_domain() - Device driver stops handling device > > @@ -3187,6 +3188,7 @@ void iommu_device_unuse_default_domain(struct device *dev) > > mutex_unlock(&group->mutex); > > iommu_group_put(group); > > } > > +EXPORT_SYMBOL_GPL(iommu_device_unuse_default_domain); > > > > static int __iommu_group_alloc_blocking_domain(struct iommu_group *group) > > { > > -- > > 2.34.3 > > >
On Tue, Nov 7, 2023 at 2:10 PM Cindy Lu <lulu@redhat.com> wrote: > > On Mon, Nov 6, 2023 at 3:26 PM Jason Wang <jasowang@redhat.com> wrote: > > > > On Sat, Nov 4, 2023 at 1:18 AM Cindy Lu <lulu@redhat.com> wrote: > > > > > > Expose the function iommu_device_use_default_domain() and > > > iommu_device_unuse_default_domain(), > > > While vdpa bind the iommufd device and detach the iommu device, > > > vdpa need to call the function > > > iommu_device_unuse_default_domain() to release the owner > > > > > > Signed-off-by: Cindy Lu <lulu@redhat.com> > > > > This is the end of the series, who is the user then? > > > > Thanks > > > hi Jason > These 2 functions was called in vhost_vdpa_iommufd_set_device(), Vdpa need to > release the dma owner, otherwise, the function will fail when > iommufd called iommu_device_claim_dma_owner() in iommufd_device_bind() > I will change this sequence, Or maybe will find some other way to fix > this problem > thanks I meant exporting helpers needs to be done before the real users. Thanks > cindy > > > > > --- > > > drivers/iommu/iommu.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > > > index 3bfc56df4f78..987cbf8c9a87 100644 > > > --- a/drivers/iommu/iommu.c > > > +++ b/drivers/iommu/iommu.c > > > @@ -3164,6 +3164,7 @@ int iommu_device_use_default_domain(struct device *dev) > > > > > > return ret; > > > } > > > +EXPORT_SYMBOL_GPL(iommu_device_use_default_domain); > > > > > > /** > > > * iommu_device_unuse_default_domain() - Device driver stops handling device > > > @@ -3187,6 +3188,7 @@ void iommu_device_unuse_default_domain(struct device *dev) > > > mutex_unlock(&group->mutex); > > > iommu_group_put(group); > > > } > > > +EXPORT_SYMBOL_GPL(iommu_device_unuse_default_domain); > > > > > > static int __iommu_group_alloc_blocking_domain(struct iommu_group *group) > > > { > > > -- > > > 2.34.3 > > > > > >
On Wed, Nov 8, 2023 at 11:04 AM Jason Wang <jasowang@redhat.com> wrote: > > On Tue, Nov 7, 2023 at 2:10 PM Cindy Lu <lulu@redhat.com> wrote: > > > > On Mon, Nov 6, 2023 at 3:26 PM Jason Wang <jasowang@redhat.com> wrote: > > > > > > On Sat, Nov 4, 2023 at 1:18 AM Cindy Lu <lulu@redhat.com> wrote: > > > > > > > > Expose the function iommu_device_use_default_domain() and > > > > iommu_device_unuse_default_domain(), > > > > While vdpa bind the iommufd device and detach the iommu device, > > > > vdpa need to call the function > > > > iommu_device_unuse_default_domain() to release the owner > > > > > > > > Signed-off-by: Cindy Lu <lulu@redhat.com> > > > > > > This is the end of the series, who is the user then? > > > > > > Thanks > > > > > hi Jason > > These 2 functions was called in vhost_vdpa_iommufd_set_device(), Vdpa need to > > release the dma owner, otherwise, the function will fail when > > iommufd called iommu_device_claim_dma_owner() in iommufd_device_bind() > > I will change this sequence, Or maybe will find some other way to fix > > this problem > > thanks > > I meant exporting helpers needs to be done before the real users. > > Thanks > sure will fix Thanks Cindy > > cindy > > > > > > > > --- > > > > drivers/iommu/iommu.c | 2 ++ > > > > 1 file changed, 2 insertions(+) > > > > > > > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > > > > index 3bfc56df4f78..987cbf8c9a87 100644 > > > > --- a/drivers/iommu/iommu.c > > > > +++ b/drivers/iommu/iommu.c > > > > @@ -3164,6 +3164,7 @@ int iommu_device_use_default_domain(struct device *dev) > > > > > > > > return ret; > > > > } > > > > +EXPORT_SYMBOL_GPL(iommu_device_use_default_domain); > > > > > > > > /** > > > > * iommu_device_unuse_default_domain() - Device driver stops handling device > > > > @@ -3187,6 +3188,7 @@ void iommu_device_unuse_default_domain(struct device *dev) > > > > mutex_unlock(&group->mutex); > > > > iommu_group_put(group); > > > > } > > > > +EXPORT_SYMBOL_GPL(iommu_device_unuse_default_domain); > > > > > > > > static int __iommu_group_alloc_blocking_domain(struct iommu_group *group) > > > > { > > > > -- > > > > 2.34.3 > > > > > > > > > >
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 3bfc56df4f78..987cbf8c9a87 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -3164,6 +3164,7 @@ int iommu_device_use_default_domain(struct device *dev) return ret; } +EXPORT_SYMBOL_GPL(iommu_device_use_default_domain); /** * iommu_device_unuse_default_domain() - Device driver stops handling device @@ -3187,6 +3188,7 @@ void iommu_device_unuse_default_domain(struct device *dev) mutex_unlock(&group->mutex); iommu_group_put(group); } +EXPORT_SYMBOL_GPL(iommu_device_unuse_default_domain); static int __iommu_group_alloc_blocking_domain(struct iommu_group *group) {
Expose the function iommu_device_use_default_domain() and iommu_device_unuse_default_domain(), While vdpa bind the iommufd device and detach the iommu device, vdpa need to call the function iommu_device_unuse_default_domain() to release the owner Signed-off-by: Cindy Lu <lulu@redhat.com> --- drivers/iommu/iommu.c | 2 ++ 1 file changed, 2 insertions(+)