[PATCH 2/5] dma-buf: remove kmap_atomic interface

Daniel Vetter daniel at ffwll.ch
Wed Jun 20 12:52:50 UTC 2018


On Wed, Jun 20, 2018 at 2:46 PM, Christian König
<ckoenig.leichtzumerken at gmail.com> wrote:
> Am 19.06.2018 um 17:35 schrieb Daniel Vetter:
>>
>> On Tue, Jun 19, 2018 at 4:47 PM, Christian König
>> <christian.koenig at amd.com> wrote:
>>>
>>> Am 18.06.2018 um 10:18 schrieb Daniel Vetter:
>>>>
>>>> On Fri, Jun 01, 2018 at 02:00:17PM +0200, Christian König wrote:
>>>>>
>>>>> Neither used nor correctly implemented anywhere. Just completely remove
>>>>> the interface.
>>>>>
>>>>> Signed-off-by: Christian König <christian.koenig at amd.com>
>>>>
>>>> I wonder whether we can nuke the normal kmap stuff too ... everyone
>>>> seems
>>>> to want/use the vmap stuff for kernel-internal mapping needs.
>>>>
>>>> Anyway, this looks good.
>>>>>
>>>>> ---
>>>>>    drivers/dma-buf/dma-buf.c                          | 44
>>>>> ----------------------
>>>>>    drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c          |  2 -
>>>>>    drivers/gpu/drm/armada/armada_gem.c                |  2 -
>>>>>    drivers/gpu/drm/drm_prime.c                        | 26
>>>>> -------------
>>>>>    drivers/gpu/drm/i915/i915_gem_dmabuf.c             | 11 ------
>>>>>    drivers/gpu/drm/i915/selftests/mock_dmabuf.c       |  2 -
>>>>>    drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c          |  2 -
>>>>>    drivers/gpu/drm/tegra/gem.c                        | 14 -------
>>>>>    drivers/gpu/drm/udl/udl_dmabuf.c                   | 17 ---------
>>>>>    drivers/gpu/drm/vmwgfx/vmwgfx_prime.c              | 13 -------
>>>>>    .../media/common/videobuf2/videobuf2-dma-contig.c  |  1 -
>>>>>    drivers/media/common/videobuf2/videobuf2-dma-sg.c  |  1 -
>>>>>    drivers/media/common/videobuf2/videobuf2-vmalloc.c |  1 -
>>>>>    drivers/staging/android/ion/ion.c                  |  2 -
>>>>>    drivers/tee/tee_shm.c                              |  6 ---
>>>>>    include/drm/drm_prime.h                            |  4 --
>>>>>    include/linux/dma-buf.h                            |  4 --
>>>>>    17 files changed, 152 deletions(-)
>>>>>
>>>>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
>>>>> index e99a8d19991b..e4c657d9fad7 100644
>>>>> --- a/drivers/dma-buf/dma-buf.c
>>>>> +++ b/drivers/dma-buf/dma-buf.c
>>>>> @@ -405,7 +405,6 @@ struct dma_buf *dma_buf_export(const struct
>>>>> dma_buf_export_info *exp_info)
>>>>>                            || !exp_info->ops->map_dma_buf
>>>>>                            || !exp_info->ops->unmap_dma_buf
>>>>>                            || !exp_info->ops->release
>>>>> -                         || !exp_info->ops->map_atomic
>>>>>                            || !exp_info->ops->map
>>>>>                            || !exp_info->ops->mmap)) {
>>>>>                  return ERR_PTR(-EINVAL);
>>>>> @@ -687,14 +686,6 @@ EXPORT_SYMBOL_GPL(dma_buf_unmap_attachment);
>>>>>     *      void \*dma_buf_kmap(struct dma_buf \*, unsigned long);
>>>>>     *      void dma_buf_kunmap(struct dma_buf \*, unsigned long, void
>>>>> \*);
>>>>>     *
>>>>> - *   There are also atomic variants of these interfaces. Like for kmap
>>>>> they
>>>>> - *   facilitate non-blocking fast-paths. Neither the importer nor the
>>>>> exporter
>>>>> - *   (in the callback) is allowed to block when using these.
>>>>> - *
>>>>> - *   Interfaces::
>>>>> - *      void \*dma_buf_kmap_atomic(struct dma_buf \*, unsigned long);
>>>>> - *      void dma_buf_kunmap_atomic(struct dma_buf \*, unsigned long,
>>>>> void \*);
>>>>> - *
>>>>>     *   For importers all the restrictions of using kmap apply, like
>>>>> the
>>>>> limited
>>>>>     *   supply of kmap_atomic slots. Hence an importer shall only hold
>>>>> onto at
>>>>>     *   max 2 atomic dma_buf kmaps at the same time (in any given
>>>>> process
>>>>> context).
>>>>
>>>> This is also about atomic kmap ...
>>>>
>>>> And the subsequent language around "Note that these calls need to always
>>>> succeed." is also not true, might be good to update that stating that
>>>> kmap
>>>> is optional (like we say already for vmap).
>>>>
>>>> With those docs nits addressed:
>>>>
>>>> Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>>>
>>>
>>> I've fixed up patch #1 and #2 and added your Reviewed-by tag.
>>>
>>> Since I finally had time to install dim do you have any objections that I
>>> now run "dim push drm-misc-next" with those two applied?
>>
>> Go ahead, that's the point of commit rights. dim might complain if you
>> cherry picked them and didn't pick them up using dim apply though ...
>
>
> I've fixed up the Link tags, but when I try "dim push-branch drm-misc-next"
> I only get the error message "error: dst ref refs/heads/drm-misc-next
> receives from more than one src."
>
> Any idea what is going wrong here?

Sounds like multiple upstreams for your local drm-misc-next branch,
and git then can't decide which one to pick. If you delete the branch
and create it using dim checkout drm-misc-next this shouldn't happen.
We're trying to fit into existing check-outs and branches, but if you
set things up slightly different than dim would have you're off script
and there's limited support for that.

Alternative check out your .git/config and remove the other upstreams.
Or attach your git config if this isn't the issue (I'm just doing some
guessing here).
-Daniel

> Christian.
>
>
>> -Daniel
>>
>>
>>> Regards,
>>> Christian.
>>>
>>>
>>>>> @@ -859,41 +850,6 @@ int dma_buf_end_cpu_access(struct dma_buf *dmabuf,
>>>>>    }
>>>>>    EXPORT_SYMBOL_GPL(dma_buf_end_cpu_access);
>>>>>    -/**
>>>>> - * dma_buf_kmap_atomic - Map a page of the buffer object into kernel
>>>>> address
>>>>> - * space. The same restrictions as for kmap_atomic and friends apply.
>>>>> - * @dmabuf:    [in]    buffer to map page from.
>>>>> - * @page_num:  [in]    page in PAGE_SIZE units to map.
>>>>> - *
>>>>> - * This call must always succeed, any necessary preparations that
>>>>> might
>>>>> fail
>>>>> - * need to be done in begin_cpu_access.
>>>>> - */
>>>>> -void *dma_buf_kmap_atomic(struct dma_buf *dmabuf, unsigned long
>>>>> page_num)
>>>>> -{
>>>>> -       WARN_ON(!dmabuf);
>>>>> -
>>>>> -       return dmabuf->ops->map_atomic(dmabuf, page_num);
>>>>> -}
>>>>> -EXPORT_SYMBOL_GPL(dma_buf_kmap_atomic);
>>>>> -
>>>>> -/**
>>>>> - * dma_buf_kunmap_atomic - Unmap a page obtained by
>>>>> dma_buf_kmap_atomic.
>>>>> - * @dmabuf:    [in]    buffer to unmap page from.
>>>>> - * @page_num:  [in]    page in PAGE_SIZE units to unmap.
>>>>> - * @vaddr:     [in]    kernel space pointer obtained from
>>>>> dma_buf_kmap_atomic.
>>>>> - *
>>>>> - * This call must always succeed.
>>>>> - */
>>>>> -void dma_buf_kunmap_atomic(struct dma_buf *dmabuf, unsigned long
>>>>> page_num,
>>>>> -                          void *vaddr)
>>>>> -{
>>>>> -       WARN_ON(!dmabuf);
>>>>> -
>>>>> -       if (dmabuf->ops->unmap_atomic)
>>>>> -               dmabuf->ops->unmap_atomic(dmabuf, page_num, vaddr);
>>>>> -}
>>>>> -EXPORT_SYMBOL_GPL(dma_buf_kunmap_atomic);
>>>>> -
>>>>>    /**
>>>>>     * dma_buf_kmap - Map a page of the buffer object into kernel
>>>>> address
>>>>> space. The
>>>>>     * same restrictions as for kmap and friends apply.
>>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>>>>> index f1500f1ec0f5..a156b3891a3f 100644
>>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c
>>>>> @@ -244,9 +244,7 @@ static const struct dma_buf_ops amdgpu_dmabuf_ops =
>>>>> {
>>>>>          .release = drm_gem_dmabuf_release,
>>>>>          .begin_cpu_access = amdgpu_gem_begin_cpu_access,
>>>>>          .map = drm_gem_dmabuf_kmap,
>>>>> -       .map_atomic = drm_gem_dmabuf_kmap_atomic,
>>>>>          .unmap = drm_gem_dmabuf_kunmap,
>>>>> -       .unmap_atomic = drm_gem_dmabuf_kunmap_atomic,
>>>>>          .mmap = drm_gem_dmabuf_mmap,
>>>>>          .vmap = drm_gem_dmabuf_vmap,
>>>>>          .vunmap = drm_gem_dmabuf_vunmap,
>>>>> diff --git a/drivers/gpu/drm/armada/armada_gem.c
>>>>> b/drivers/gpu/drm/armada/armada_gem.c
>>>>> index a97f509743a5..3fb37c75c065 100644
>>>>> --- a/drivers/gpu/drm/armada/armada_gem.c
>>>>> +++ b/drivers/gpu/drm/armada/armada_gem.c
>>>>> @@ -490,8 +490,6 @@ static const struct dma_buf_ops
>>>>> armada_gem_prime_dmabuf_ops = {
>>>>>          .map_dma_buf    = armada_gem_prime_map_dma_buf,
>>>>>          .unmap_dma_buf  = armada_gem_prime_unmap_dma_buf,
>>>>>          .release        = drm_gem_dmabuf_release,
>>>>> -       .map_atomic     = armada_gem_dmabuf_no_kmap,
>>>>> -       .unmap_atomic   = armada_gem_dmabuf_no_kunmap,
>>>>>          .map            = armada_gem_dmabuf_no_kmap,
>>>>>          .unmap          = armada_gem_dmabuf_no_kunmap,
>>>>>          .mmap           = armada_gem_dmabuf_mmap,
>>>>> diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c
>>>>> index 4a3a232fea67..b28fa8f44c8b 100644
>>>>> --- a/drivers/gpu/drm/drm_prime.c
>>>>> +++ b/drivers/gpu/drm/drm_prime.c
>>>>> @@ -426,30 +426,6 @@ void drm_gem_dmabuf_vunmap(struct dma_buf
>>>>> *dma_buf,
>>>>> void *vaddr)
>>>>>    }
>>>>>    EXPORT_SYMBOL(drm_gem_dmabuf_vunmap);
>>>>>    -/**
>>>>> - * drm_gem_dmabuf_kmap_atomic - map_atomic implementation for GEM
>>>>> - *
>>>>> - * Not implemented. This can be used as the &dma_buf_ops.map_atomic
>>>>> callback.
>>>>> - */
>>>>> -void *drm_gem_dmabuf_kmap_atomic(struct dma_buf *dma_buf,
>>>>> -                                unsigned long page_num)
>>>>> -{
>>>>> -       return NULL;
>>>>> -}
>>>>> -EXPORT_SYMBOL(drm_gem_dmabuf_kmap_atomic);
>>>>> -
>>>>> -/**
>>>>> - * drm_gem_dmabuf_kunmap_atomic - unmap_atomic implementation for GEM
>>>>> - *
>>>>> - * Not implemented. This can be used as the &dma_buf_ops.unmap_atomic
>>>>> callback.
>>>>> - */
>>>>> -void drm_gem_dmabuf_kunmap_atomic(struct dma_buf *dma_buf,
>>>>> -                                 unsigned long page_num, void *addr)
>>>>> -{
>>>>> -
>>>>> -}
>>>>> -EXPORT_SYMBOL(drm_gem_dmabuf_kunmap_atomic);
>>>>> -
>>>>>    /**
>>>>>     * drm_gem_dmabuf_kmap - map implementation for GEM
>>>>>     *
>>>>> @@ -502,9 +478,7 @@ static const struct dma_buf_ops
>>>>> drm_gem_prime_dmabuf_ops =  {
>>>>>          .unmap_dma_buf = drm_gem_unmap_dma_buf,
>>>>>          .release = drm_gem_dmabuf_release,
>>>>>          .map = drm_gem_dmabuf_kmap,
>>>>> -       .map_atomic = drm_gem_dmabuf_kmap_atomic,
>>>>>          .unmap = drm_gem_dmabuf_kunmap,
>>>>> -       .unmap_atomic = drm_gem_dmabuf_kunmap_atomic,
>>>>>          .mmap = drm_gem_dmabuf_mmap,
>>>>>          .vmap = drm_gem_dmabuf_vmap,
>>>>>          .vunmap = drm_gem_dmabuf_vunmap,
>>>>> diff --git a/drivers/gpu/drm/i915/i915_gem_dmabuf.c
>>>>> b/drivers/gpu/drm/i915/i915_gem_dmabuf.c
>>>>> index 69a7aec49e84..82e2ca17a441 100644
>>>>> --- a/drivers/gpu/drm/i915/i915_gem_dmabuf.c
>>>>> +++ b/drivers/gpu/drm/i915/i915_gem_dmabuf.c
>>>>> @@ -111,15 +111,6 @@ static void i915_gem_dmabuf_vunmap(struct dma_buf
>>>>> *dma_buf, void *vaddr)
>>>>>          i915_gem_object_unpin_map(obj);
>>>>>    }
>>>>>    -static void *i915_gem_dmabuf_kmap_atomic(struct dma_buf *dma_buf,
>>>>> unsigned long page_num)
>>>>> -{
>>>>> -       return NULL;
>>>>> -}
>>>>> -
>>>>> -static void i915_gem_dmabuf_kunmap_atomic(struct dma_buf *dma_buf,
>>>>> unsigned long page_num, void *addr)
>>>>> -{
>>>>> -
>>>>> -}
>>>>>    static void *i915_gem_dmabuf_kmap(struct dma_buf *dma_buf, unsigned
>>>>> long page_num)
>>>>>    {
>>>>>          struct drm_i915_gem_object *obj = dma_buf_to_obj(dma_buf);
>>>>> @@ -225,9 +216,7 @@ static const struct dma_buf_ops i915_dmabuf_ops =
>>>>> {
>>>>>          .unmap_dma_buf = i915_gem_unmap_dma_buf,
>>>>>          .release = drm_gem_dmabuf_release,
>>>>>          .map = i915_gem_dmabuf_kmap,
>>>>> -       .map_atomic = i915_gem_dmabuf_kmap_atomic,
>>>>>          .unmap = i915_gem_dmabuf_kunmap,
>>>>> -       .unmap_atomic = i915_gem_dmabuf_kunmap_atomic,
>>>>>          .mmap = i915_gem_dmabuf_mmap,
>>>>>          .vmap = i915_gem_dmabuf_vmap,
>>>>>          .vunmap = i915_gem_dmabuf_vunmap,
>>>>> diff --git a/drivers/gpu/drm/i915/selftests/mock_dmabuf.c
>>>>> b/drivers/gpu/drm/i915/selftests/mock_dmabuf.c
>>>>> index 302f7d103635..f81fda8ea45e 100644
>>>>> --- a/drivers/gpu/drm/i915/selftests/mock_dmabuf.c
>>>>> +++ b/drivers/gpu/drm/i915/selftests/mock_dmabuf.c
>>>>> @@ -130,9 +130,7 @@ static const struct dma_buf_ops mock_dmabuf_ops =
>>>>> {
>>>>>          .unmap_dma_buf = mock_unmap_dma_buf,
>>>>>          .release = mock_dmabuf_release,
>>>>>          .map = mock_dmabuf_kmap,
>>>>> -       .map_atomic = mock_dmabuf_kmap_atomic,
>>>>>          .unmap = mock_dmabuf_kunmap,
>>>>> -       .unmap_atomic = mock_dmabuf_kunmap_atomic,
>>>>>          .mmap = mock_dmabuf_mmap,
>>>>>          .vmap = mock_dmabuf_vmap,
>>>>>          .vunmap = mock_dmabuf_vunmap,
>>>>> diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c
>>>>> b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c
>>>>> index 8e41d649e248..1a073f9b2834 100644
>>>>> --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c
>>>>> +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c
>>>>> @@ -148,8 +148,6 @@ static const struct dma_buf_ops omap_dmabuf_ops = {
>>>>>          .release = drm_gem_dmabuf_release,
>>>>>          .begin_cpu_access = omap_gem_dmabuf_begin_cpu_access,
>>>>>          .end_cpu_access = omap_gem_dmabuf_end_cpu_access,
>>>>> -       .map_atomic = omap_gem_dmabuf_kmap_atomic,
>>>>> -       .unmap_atomic = omap_gem_dmabuf_kunmap_atomic,
>>>>>          .map = omap_gem_dmabuf_kmap,
>>>>>          .unmap = omap_gem_dmabuf_kunmap,
>>>>>          .mmap = omap_gem_dmabuf_mmap,
>>>>> diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c
>>>>> index 8b0b4ff64bb4..d7661702c11c 100644
>>>>> --- a/drivers/gpu/drm/tegra/gem.c
>>>>> +++ b/drivers/gpu/drm/tegra/gem.c
>>>>> @@ -596,18 +596,6 @@ static int tegra_gem_prime_end_cpu_access(struct
>>>>> dma_buf *buf,
>>>>>          return 0;
>>>>>    }
>>>>>    -static void *tegra_gem_prime_kmap_atomic(struct dma_buf *buf,
>>>>> -                                        unsigned long page)
>>>>> -{
>>>>> -       return NULL;
>>>>> -}
>>>>> -
>>>>> -static void tegra_gem_prime_kunmap_atomic(struct dma_buf *buf,
>>>>> -                                         unsigned long page,
>>>>> -                                         void *addr)
>>>>> -{
>>>>> -}
>>>>> -
>>>>>    static void *tegra_gem_prime_kmap(struct dma_buf *buf, unsigned long
>>>>> page)
>>>>>    {
>>>>>          return NULL;
>>>>> @@ -648,8 +636,6 @@ static const struct dma_buf_ops
>>>>> tegra_gem_prime_dmabuf_ops = {
>>>>>          .release = tegra_gem_prime_release,
>>>>>          .begin_cpu_access = tegra_gem_prime_begin_cpu_access,
>>>>>          .end_cpu_access = tegra_gem_prime_end_cpu_access,
>>>>> -       .map_atomic = tegra_gem_prime_kmap_atomic,
>>>>> -       .unmap_atomic = tegra_gem_prime_kunmap_atomic,
>>>>>          .map = tegra_gem_prime_kmap,
>>>>>          .unmap = tegra_gem_prime_kunmap,
>>>>>          .mmap = tegra_gem_prime_mmap,
>>>>> diff --git a/drivers/gpu/drm/udl/udl_dmabuf.c
>>>>> b/drivers/gpu/drm/udl/udl_dmabuf.c
>>>>> index 5fdc8bdc2026..ae7225dedc30 100644
>>>>> --- a/drivers/gpu/drm/udl/udl_dmabuf.c
>>>>> +++ b/drivers/gpu/drm/udl/udl_dmabuf.c
>>>>> @@ -156,27 +156,12 @@ static void *udl_dmabuf_kmap(struct dma_buf
>>>>> *dma_buf, unsigned long page_num)
>>>>>          return NULL;
>>>>>    }
>>>>>    -static void *udl_dmabuf_kmap_atomic(struct dma_buf *dma_buf,
>>>>> -                                   unsigned long page_num)
>>>>> -{
>>>>> -       /* TODO */
>>>>> -
>>>>> -       return NULL;
>>>>> -}
>>>>> -
>>>>>    static void udl_dmabuf_kunmap(struct dma_buf *dma_buf,
>>>>>                                unsigned long page_num, void *addr)
>>>>>    {
>>>>>          /* TODO */
>>>>>    }
>>>>>    -static void udl_dmabuf_kunmap_atomic(struct dma_buf *dma_buf,
>>>>> -                                    unsigned long page_num,
>>>>> -                                    void *addr)
>>>>> -{
>>>>> -       /* TODO */
>>>>> -}
>>>>> -
>>>>>    static int udl_dmabuf_mmap(struct dma_buf *dma_buf,
>>>>>                             struct vm_area_struct *vma)
>>>>>    {
>>>>> @@ -191,9 +176,7 @@ static const struct dma_buf_ops udl_dmabuf_ops = {
>>>>>          .map_dma_buf            = udl_map_dma_buf,
>>>>>          .unmap_dma_buf          = udl_unmap_dma_buf,
>>>>>          .map                    = udl_dmabuf_kmap,
>>>>> -       .map_atomic             = udl_dmabuf_kmap_atomic,
>>>>>          .unmap                  = udl_dmabuf_kunmap,
>>>>> -       .unmap_atomic           = udl_dmabuf_kunmap_atomic,
>>>>>          .mmap                   = udl_dmabuf_mmap,
>>>>>          .release                = drm_gem_dmabuf_release,
>>>>>    };
>>>>> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
>>>>> b/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
>>>>> index fbffb37ccf42..373bc6da2f84 100644
>>>>> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
>>>>> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
>>>>> @@ -71,17 +71,6 @@ static void vmw_prime_dmabuf_vunmap(struct dma_buf
>>>>> *dma_buf, void *vaddr)
>>>>>    {
>>>>>    }
>>>>>    -static void *vmw_prime_dmabuf_kmap_atomic(struct dma_buf *dma_buf,
>>>>> -               unsigned long page_num)
>>>>> -{
>>>>> -       return NULL;
>>>>> -}
>>>>> -
>>>>> -static void vmw_prime_dmabuf_kunmap_atomic(struct dma_buf *dma_buf,
>>>>> -               unsigned long page_num, void *addr)
>>>>> -{
>>>>> -
>>>>> -}
>>>>>    static void *vmw_prime_dmabuf_kmap(struct dma_buf *dma_buf,
>>>>>                  unsigned long page_num)
>>>>>    {
>>>>> @@ -108,9 +97,7 @@ const struct dma_buf_ops vmw_prime_dmabuf_ops =  {
>>>>>          .unmap_dma_buf = vmw_prime_unmap_dma_buf,
>>>>>          .release = NULL,
>>>>>          .map = vmw_prime_dmabuf_kmap,
>>>>> -       .map_atomic = vmw_prime_dmabuf_kmap_atomic,
>>>>>          .unmap = vmw_prime_dmabuf_kunmap,
>>>>> -       .unmap_atomic = vmw_prime_dmabuf_kunmap_atomic,
>>>>>          .mmap = vmw_prime_dmabuf_mmap,
>>>>>          .vmap = vmw_prime_dmabuf_vmap,
>>>>>          .vunmap = vmw_prime_dmabuf_vunmap,
>>>>> diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
>>>>> b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
>>>>> index 12d0072c52c2..aff0ab7bf83d 100644
>>>>> --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c
>>>>> +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c
>>>>> @@ -358,7 +358,6 @@ static const struct dma_buf_ops vb2_dc_dmabuf_ops =
>>>>> {
>>>>>          .map_dma_buf = vb2_dc_dmabuf_ops_map,
>>>>>          .unmap_dma_buf = vb2_dc_dmabuf_ops_unmap,
>>>>>          .map = vb2_dc_dmabuf_ops_kmap,
>>>>> -       .map_atomic = vb2_dc_dmabuf_ops_kmap,
>>>>>          .vmap = vb2_dc_dmabuf_ops_vmap,
>>>>>          .mmap = vb2_dc_dmabuf_ops_mmap,
>>>>>          .release = vb2_dc_dmabuf_ops_release,
>>>>> diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c
>>>>> b/drivers/media/common/videobuf2/videobuf2-dma-sg.c
>>>>> index cf94765e593f..015e737095cd 100644
>>>>> --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c
>>>>> +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c
>>>>> @@ -507,7 +507,6 @@ static const struct dma_buf_ops
>>>>> vb2_dma_sg_dmabuf_ops
>>>>> = {
>>>>>          .map_dma_buf = vb2_dma_sg_dmabuf_ops_map,
>>>>>          .unmap_dma_buf = vb2_dma_sg_dmabuf_ops_unmap,
>>>>>          .map = vb2_dma_sg_dmabuf_ops_kmap,
>>>>> -       .map_atomic = vb2_dma_sg_dmabuf_ops_kmap,
>>>>>          .vmap = vb2_dma_sg_dmabuf_ops_vmap,
>>>>>          .mmap = vb2_dma_sg_dmabuf_ops_mmap,
>>>>>          .release = vb2_dma_sg_dmabuf_ops_release,
>>>>> diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c
>>>>> b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
>>>>> index 298ffb9ecdae..467a4005164b 100644
>>>>> --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c
>>>>> +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c
>>>>> @@ -346,7 +346,6 @@ static const struct dma_buf_ops
>>>>> vb2_vmalloc_dmabuf_ops = {
>>>>>          .map_dma_buf = vb2_vmalloc_dmabuf_ops_map,
>>>>>          .unmap_dma_buf = vb2_vmalloc_dmabuf_ops_unmap,
>>>>>          .map = vb2_vmalloc_dmabuf_ops_kmap,
>>>>> -       .map_atomic = vb2_vmalloc_dmabuf_ops_kmap,
>>>>>          .vmap = vb2_vmalloc_dmabuf_ops_vmap,
>>>>>          .mmap = vb2_vmalloc_dmabuf_ops_mmap,
>>>>>          .release = vb2_vmalloc_dmabuf_ops_release,
>>>>> diff --git a/drivers/staging/android/ion/ion.c
>>>>> b/drivers/staging/android/ion/ion.c
>>>>> index 57e0d8035b2e..a46219ff5e16 100644
>>>>> --- a/drivers/staging/android/ion/ion.c
>>>>> +++ b/drivers/staging/android/ion/ion.c
>>>>> @@ -374,8 +374,6 @@ static const struct dma_buf_ops dma_buf_ops = {
>>>>>          .detach = ion_dma_buf_detatch,
>>>>>          .begin_cpu_access = ion_dma_buf_begin_cpu_access,
>>>>>          .end_cpu_access = ion_dma_buf_end_cpu_access,
>>>>> -       .map_atomic = ion_dma_buf_kmap,
>>>>> -       .unmap_atomic = ion_dma_buf_kunmap,
>>>>>          .map = ion_dma_buf_kmap,
>>>>>          .unmap = ion_dma_buf_kunmap,
>>>>>    };
>>>>> diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c
>>>>> index 556960a1bab3..df4a1553b78b 100644
>>>>> --- a/drivers/tee/tee_shm.c
>>>>> +++ b/drivers/tee/tee_shm.c
>>>>> @@ -80,11 +80,6 @@ static void tee_shm_op_release(struct dma_buf
>>>>> *dmabuf)
>>>>>          tee_shm_release(shm);
>>>>>    }
>>>>>    -static void *tee_shm_op_map_atomic(struct dma_buf *dmabuf, unsigned
>>>>> long pgnum)
>>>>> -{
>>>>> -       return NULL;
>>>>> -}
>>>>> -
>>>>>    static void *tee_shm_op_map(struct dma_buf *dmabuf, unsigned long
>>>>> pgnum)
>>>>>    {
>>>>>          return NULL;
>>>>> @@ -107,7 +102,6 @@ static const struct dma_buf_ops tee_shm_dma_buf_ops
>>>>> =
>>>>> {
>>>>>          .map_dma_buf = tee_shm_op_map_dma_buf,
>>>>>          .unmap_dma_buf = tee_shm_op_unmap_dma_buf,
>>>>>          .release = tee_shm_op_release,
>>>>> -       .map_atomic = tee_shm_op_map_atomic,
>>>>>          .map = tee_shm_op_map,
>>>>>          .mmap = tee_shm_op_mmap,
>>>>>    };
>>>>> diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h
>>>>> index ef338151cea8..d716d653b096 100644
>>>>> --- a/include/drm/drm_prime.h
>>>>> +++ b/include/drm/drm_prime.h
>>>>> @@ -93,10 +93,6 @@ void drm_gem_unmap_dma_buf(struct dma_buf_attachment
>>>>> *attach,
>>>>>                             enum dma_data_direction dir);
>>>>>    void *drm_gem_dmabuf_vmap(struct dma_buf *dma_buf);
>>>>>    void drm_gem_dmabuf_vunmap(struct dma_buf *dma_buf, void *vaddr);
>>>>> -void *drm_gem_dmabuf_kmap_atomic(struct dma_buf *dma_buf,
>>>>> -                                unsigned long page_num);
>>>>> -void drm_gem_dmabuf_kunmap_atomic(struct dma_buf *dma_buf,
>>>>> -                                 unsigned long page_num, void *addr);
>>>>>    void *drm_gem_dmabuf_kmap(struct dma_buf *dma_buf, unsigned long
>>>>> page_num);
>>>>>    void drm_gem_dmabuf_kunmap(struct dma_buf *dma_buf, unsigned long
>>>>> page_num,
>>>>>                             void *addr);
>>>>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
>>>>> index 346caf77937f..d17cadd76802 100644
>>>>> --- a/include/linux/dma-buf.h
>>>>> +++ b/include/linux/dma-buf.h
>>>>> @@ -205,8 +205,6 @@ struct dma_buf_ops {
>>>>>           * to be restarted.
>>>>>           */
>>>>>          int (*end_cpu_access)(struct dma_buf *, enum
>>>>> dma_data_direction);
>>>>> -       void *(*map_atomic)(struct dma_buf *, unsigned long);
>>>>> -       void (*unmap_atomic)(struct dma_buf *, unsigned long, void *);
>>>>>          void *(*map)(struct dma_buf *, unsigned long);
>>>>>          void (*unmap)(struct dma_buf *, unsigned long, void *);
>>>>>    @@ -394,8 +392,6 @@ int dma_buf_begin_cpu_access(struct dma_buf
>>>>> *dma_buf,
>>>>>                               enum dma_data_direction dir);
>>>>>    int dma_buf_end_cpu_access(struct dma_buf *dma_buf,
>>>>>                             enum dma_data_direction dir);
>>>>> -void *dma_buf_kmap_atomic(struct dma_buf *, unsigned long);
>>>>> -void dma_buf_kunmap_atomic(struct dma_buf *, unsigned long, void *);
>>>>>    void *dma_buf_kmap(struct dma_buf *, unsigned long);
>>>>>    void dma_buf_kunmap(struct dma_buf *, unsigned long, void *);
>>>>>
>>>>> --
>>>>> 2.14.1
>>>>>
>>>>> _______________________________________________
>>>>> dri-devel mailing list
>>>>> dri-devel at lists.freedesktop.org
>>>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>>
>>>
>>
>>
>



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the amd-gfx mailing list