diff options
| author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2020-12-11 16:58:40 +0100 | 
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2020-12-16 11:28:34 +0100 | 
| commit | de9114ece5dfcc422164a24a687785843ed92c47 (patch) | |
| tree | 5fbfbc1c505250533f2011fbe373946bf77206ea /drivers/dma-buf | |
| parent | ba8c0faebbb0af3f65495992a6543f9d424fd0a3 (diff) | |
| download | linux-de9114ece5dfcc422164a24a687785843ed92c47.tar.bz2 | |
dma-buf: Remove kmap kerneldoc vestiges
Also try to clarify a bit when dma_buf_begin/end_cpu_access should
be called.
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: "Christian König" <christian.koenig@amd.com>
Cc: linux-media@vger.kernel.org
Cc: linaro-mm-sig@lists.linaro.org
Link: https://patchwork.freedesktop.org/patch/msgid/20201211155843.3348718-1-daniel.vetter@ffwll.ch
Diffstat (limited to 'drivers/dma-buf')
| -rw-r--r-- | drivers/dma-buf/dma-buf.c | 20 | 
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index e63684d4cd90..a12fdffa130f 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -1001,15 +1001,15 @@ EXPORT_SYMBOL_GPL(dma_buf_move_notify);   *   vmalloc space might be limited and result in vmap calls failing.   *   *   Interfaces:: + *   *      void \*dma_buf_vmap(struct dma_buf \*dmabuf)   *      void dma_buf_vunmap(struct dma_buf \*dmabuf, void \*vaddr)   *   *   The vmap call can fail if there is no vmap support in the exporter, or if - *   it runs out of vmalloc space. Fallback to kmap should be implemented. Note - *   that the dma-buf layer keeps a reference count for all vmap access and - *   calls down into the exporter's vmap function only when no vmapping exists, - *   and only unmaps it once. Protection against concurrent vmap/vunmap calls is - *   provided by taking the dma_buf->lock mutex. + *   it runs out of vmalloc space. Note that the dma-buf layer keeps a reference + *   count for all vmap access and calls down into the exporter's vmap function + *   only when no vmapping exists, and only unmaps it once. Protection against + *   concurrent vmap/vunmap calls is provided by taking the &dma_buf.lock mutex.   *   * - For full compatibility on the importer side with existing userspace   *   interfaces, which might already support mmap'ing buffers. This is needed in @@ -1098,6 +1098,11 @@ static int __dma_buf_begin_cpu_access(struct dma_buf *dmabuf,   * dma_buf_end_cpu_access(). Only when cpu access is braketed by both calls is   * it guaranteed to be coherent with other DMA access.   * + * This function will also wait for any DMA transactions tracked through + * implicit synchronization in &dma_buf.resv. For DMA transactions with explicit + * synchronization this function will only ensure cache coherency, callers must + * ensure synchronization with such DMA transactions on their own. + *   * Can return negative error values, returns 0 on success.   */  int dma_buf_begin_cpu_access(struct dma_buf *dmabuf, @@ -1199,7 +1204,10 @@ EXPORT_SYMBOL_GPL(dma_buf_mmap);   * This call may fail due to lack of virtual mapping address space.   * These calls are optional in drivers. The intended use for them   * is for mapping objects linear in kernel space for high use objects. - * Please attempt to use kmap/kunmap before thinking about these interfaces. + * + * To ensure coherency users must call dma_buf_begin_cpu_access() and + * dma_buf_end_cpu_access() around any cpu access performed through this + * mapping.   *   * Returns 0 on success, or a negative errno code otherwise.   */  |