Commit 47e982d5 authored by Dmitry Osipenko's avatar Dmitry Osipenko

dma-buf: Move dma_buf_map_attachment() to dynamic locking specification

Move dma-buf attachment mapping functions to the dynamic locking
specification by asserting that the reservation lock is held.
Acked-by: default avatarSumit Semwal <sumit.semwal@linaro.org>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarDmitry Osipenko <dmitry.osipenko@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20221017172229.42269-18-dmitry.osipenko@collabora.com
parent 809d9c72
...@@ -1038,8 +1038,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach, ...@@ -1038,8 +1038,7 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
if (WARN_ON(!attach || !attach->dmabuf)) if (WARN_ON(!attach || !attach->dmabuf))
return ERR_PTR(-EINVAL); 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) { if (attach->sgt) {
/* /*
...@@ -1054,7 +1053,6 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach, ...@@ -1054,7 +1053,6 @@ struct sg_table *dma_buf_map_attachment(struct dma_buf_attachment *attach,
} }
if (dma_buf_is_dynamic(attach->dmabuf)) { if (dma_buf_is_dynamic(attach->dmabuf)) {
dma_resv_assert_held(attach->dmabuf->resv);
if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) { if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
r = attach->dmabuf->ops->pin(attach); r = attach->dmabuf->ops->pin(attach);
if (r) if (r)
...@@ -1143,15 +1141,11 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach, ...@@ -1143,15 +1141,11 @@ void dma_buf_unmap_attachment(struct dma_buf_attachment *attach,
if (WARN_ON(!attach || !attach->dmabuf || !sg_table)) if (WARN_ON(!attach || !attach->dmabuf || !sg_table))
return; 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) if (attach->sgt == sg_table)
return; return;
if (dma_buf_is_dynamic(attach->dmabuf))
dma_resv_assert_held(attach->dmabuf->resv);
__unmap_dma_buf(attach, sg_table, direction); __unmap_dma_buf(attach, sg_table, direction);
if (dma_buf_is_dynamic(attach->dmabuf) && if (dma_buf_is_dynamic(attach->dmabuf) &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment