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

Acked-by: Sumit Semwal <sumit.semwal@linaro.org>
Reviewed-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-18-dmitry.osipenko@collabora.com
drivers/dma-buf/dma-buf.c

index d685a5a..f54c649 100644 (file)
@@ -1038,8 +1038,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
        if (WARN_ON(!attach || !attach->dmabuf))
                return ERR_PTR(-EINVAL);
 
-       if (dma_buf_attachment_is_dynamic(attach))
-               dma_resv_assert_held(attach->dmabuf->resv);
+       dma_resv_assert_held(attach->dmabuf->resv);
 
        if (attach->sgt) {
                /*
@@ -1054,7 +1053,6 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
        }
 
        if (dma_buf_is_dynamic(attach->dmabuf)) {
-               dma_resv_assert_held(attach->dmabuf->resv);
                if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
                        r = attach->dmabuf->ops->pin(attach);
                        if (r)
@@ -1143,15 +1141,11 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach,
        if (WARN_ON(!attach || !attach->dmabuf || !sg_table))
                return;
 
-       if (dma_buf_attachment_is_dynamic(attach))
-               dma_resv_assert_held(attach->dmabuf->resv);
+       dma_resv_assert_held(attach->dmabuf->resv);
 
        if (attach->sgt == sg_table)
                return;
 
-       if (dma_buf_is_dynamic(attach->dmabuf))
-               dma_resv_assert_held(attach->dmabuf->resv);
-
        __unmap_dma_buf(attach, sg_table, direction);
 
        if (dma_buf_is_dynamic(attach->dmabuf) &&