OSDN Git Service

dma-buf: Move dma_buf_vmap() to dynamic locking specification
authorDmitry Osipenko <dmitry.osipenko@collabora.com>
Mon, 17 Oct 2022 17:22:23 +0000 (20:22 +0300)
committerDmitry Osipenko <dmitry.osipenko@collabora.com>
Mon, 17 Oct 2022 22:21:50 +0000 (01:21 +0300)
Move dma_buf_vmap/vunmap() functions to the dynamic locking
specification by asserting that the reservation lock is held.

Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221017172229.42269-16-dmitry.osipenko@collabora.com
drivers/dma-buf/dma-buf.c

index 3e4060d..2c4381b 100644 (file)
@@ -1450,6 +1450,8 @@ int dma_buf_vmap(struct dma_buf *dmabuf, struct iosys_map *map)
        if (WARN_ON(!dmabuf))
                return -EINVAL;
 
+       dma_resv_assert_held(dmabuf->resv);
+
        if (!dmabuf->ops->vmap)
                return -EINVAL;
 
@@ -1515,6 +1517,8 @@ void dma_buf_vunmap(struct dma_buf *dmabuf, struct iosys_map *map)
        if (WARN_ON(!dmabuf))
                return;
 
+       dma_resv_assert_held(dmabuf->resv);
+
        BUG_ON(iosys_map_is_null(&dmabuf->vmap_ptr));
        BUG_ON(dmabuf->vmapping_counter == 0);
        BUG_ON(!iosys_map_is_equal(&dmabuf->vmap_ptr, map));