Message ID | 20200914132920.59183-2-christian.koenig@amd.com |
---|---|
State | New |
Headers | show |
Series | [1/2] drm/shmem-helpers: revert "Redirect mmap for imported dma-buf" | expand |
On Mon, Sep 14, 2020 at 3:29 PM Christian König <ckoenig.leichtzumerken@gmail.com> wrote: > > This reverts commit 26d3ac3cb04d171a861952e89324e347598a347f. > > We need to figure out if dma_buf_mmap() is valid or not first. > > Signed-off-by: Christian König <christian.koenig@amd.com> The trouble is that doing dma-buf mmap by looking at the struct pages behind the sg list and just inserting those into userspace doesn't really work any better. You still won't get the unmap_mapping_range and hence pte shoot-down. So maybe dma_buf_mmap forwarding doesn't work, but this doesn't make it any better. Also commit message should probably explain a bit the context here, not a lot of people have been in our private discussion on this. -Daniel > --- > drivers/gpu/drm/drm_gem_shmem_helper.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c > index 0a952f27c184..cd727343f72b 100644 > --- a/drivers/gpu/drm/drm_gem_shmem_helper.c > +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c > @@ -594,9 +594,6 @@ int drm_gem_shmem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) > /* Remove the fake offset */ > vma->vm_pgoff -= drm_vma_node_start(&obj->vma_node); > > - if (obj->import_attach) > - return dma_buf_mmap(obj->dma_buf, vma, 0); > - > shmem = to_drm_gem_shmem_obj(obj); > > ret = drm_gem_shmem_get_pages(shmem); > -- > 2.17.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Tue, Sep 15, 2020 at 1:03 PM Christian König <ckoenig.leichtzumerken@gmail.com> wrote: > > Am 15.09.20 um 12:39 schrieb Daniel Vetter: > > On Mon, Sep 14, 2020 at 3:29 PM Christian König > > <ckoenig.leichtzumerken@gmail.com> wrote: > >> This reverts commit 26d3ac3cb04d171a861952e89324e347598a347f. > >> > >> We need to figure out if dma_buf_mmap() is valid or not first. > >> > >> Signed-off-by: Christian König <christian.koenig@amd.com> > > The trouble is that doing dma-buf mmap by looking at the struct pages > > behind the sg list and just inserting those into userspace doesn't > > really work any better. You still won't get the unmap_mapping_range > > and hence pte shoot-down. So maybe dma_buf_mmap forwarding doesn't > > work, but this doesn't make it any better. > > Good point. Question is what should we do? Return -EPERM? IIrc there's userspace which expects this to work, but I think it's also only trying to do this with simpler drivers that don't need unmap_mapping_range to work correctly. Or it's simply that no one ever reported the bugs. It's a bit a mess :-/ -Daniel > > > > > Also commit message should probably explain a bit the context here, > > not a lot of people have been in our private discussion on this. > > Well, that's certain true. > > Christian. > > > -Daniel > > > >> --- > >> drivers/gpu/drm/drm_gem_shmem_helper.c | 3 --- > >> 1 file changed, 3 deletions(-) > >> > >> diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c > >> index 0a952f27c184..cd727343f72b 100644 > >> --- a/drivers/gpu/drm/drm_gem_shmem_helper.c > >> +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c > >> @@ -594,9 +594,6 @@ int drm_gem_shmem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) > >> /* Remove the fake offset */ > >> vma->vm_pgoff -= drm_vma_node_start(&obj->vma_node); > >> > >> - if (obj->import_attach) > >> - return dma_buf_mmap(obj->dma_buf, vma, 0); > >> - > >> shmem = to_drm_gem_shmem_obj(obj); > >> > >> ret = drm_gem_shmem_get_pages(shmem); > >> -- > >> 2.17.1 > >> > >> _______________________________________________ > >> dri-devel mailing list > >> dri-devel@lists.freedesktop.org > >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > >
diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c index 0a952f27c184..cd727343f72b 100644 --- a/drivers/gpu/drm/drm_gem_shmem_helper.c +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c @@ -594,9 +594,6 @@ int drm_gem_shmem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) /* Remove the fake offset */ vma->vm_pgoff -= drm_vma_node_start(&obj->vma_node); - if (obj->import_attach) - return dma_buf_mmap(obj->dma_buf, vma, 0); - shmem = to_drm_gem_shmem_obj(obj); ret = drm_gem_shmem_get_pages(shmem);
This reverts commit 26d3ac3cb04d171a861952e89324e347598a347f. We need to figure out if dma_buf_mmap() is valid or not first. Signed-off-by: Christian König <christian.koenig@amd.com> --- drivers/gpu/drm/drm_gem_shmem_helper.c | 3 --- 1 file changed, 3 deletions(-)