On Wed, Jul 20, 2022 at 12:42 PM Xie Yongji <xieyongji@xxxxxxxxxxxxx> wrote: > > Now we use domain->iotlb_lock to protect two different > variables: domain->bounce_maps->bounce_page and > domain->iotlb. But for domain->bounce_maps->bounce_page, > we actually don't need any synchronization between > vduse_domain_get_bounce_page() and vduse_domain_free_bounce_pages() > since vduse_domain_get_bounce_page() will only be called in > page fault handler and vduse_domain_free_bounce_pages() will > be called during file release. > > So let's remove the unnecessary spin lock protection in > vduse_domain_get_bounce_page(). Then the usage of > domain->iotlb_lock could be more clear: the lock will be > only used to protect the domain->iotlb. > > Signed-off-by: Xie Yongji <xieyongji@xxxxxxxxxxxxx> Acked-by: Jason Wang <jasowang@xxxxxxxxxx> > --- > drivers/vdpa/vdpa_user/iova_domain.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/drivers/vdpa/vdpa_user/iova_domain.c b/drivers/vdpa/vdpa_user/iova_domain.c > index 6daa3978d290..bca1f0b8850c 100644 > --- a/drivers/vdpa/vdpa_user/iova_domain.c > +++ b/drivers/vdpa/vdpa_user/iova_domain.c > @@ -211,17 +211,14 @@ static struct page * > vduse_domain_get_bounce_page(struct vduse_iova_domain *domain, u64 iova) > { > struct vduse_bounce_map *map; > - struct page *page = NULL; > + struct page *page; > > - spin_lock(&domain->iotlb_lock); > map = &domain->bounce_maps[iova >> PAGE_SHIFT]; > if (!map->bounce_page) > - goto out; > + return NULL; > > page = map->bounce_page; > get_page(page); > -out: > - spin_unlock(&domain->iotlb_lock); > > return page; > } > -- > 2.20.1 > _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization