FROMGIT: dma-buf: remove restriction of IOCTL:DMA_BUF_SET_NAME
In this patch(https://patchwork.freedesktop.org/patch/310349), it add a new IOCTL to support dma-buf user to set debug name. But it also added a limitation of this IOCTL, it needs the attachments of dmabuf should be empty, otherwise it will fail. For the original series, the idea was that allowing name change mid-use could confuse the users about the dma-buf. However, the rest of the series also makes sure each dma-buf have a unique inode(https://patchwork.freedesktop.org/patch/310387/), and any accounting should probably use that, without relying on the name as much. So, removing this restriction will let dma-buf userspace users to use it more comfortably and without any side effect. Signed-off-by: Guangming Cao <Guangming.Cao@mediatek.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Christian König <christian.koenig@amd.com> Link: https://lore.kernel.org/lkml/20211009024733.65676-1-guangming.cao@mediatek.com/T/ Bug: 209090315 (cherry picked from commit e73c317efbf9a6ab2d1c18eff8343958ab6df73a https://anongit.freedesktop.org/git/drm/drm-misc.git drm-misc) Change-Id: Ic163a92d002608c72a0c96854922ad16e0c14b06 Signed-off-by: Yunfei Wang <yf.wang@mediatek.com>
This commit is contained in:

committed by
Matthias Männich

parent
e80be54e4b
commit
1260b47d4f
@@ -350,29 +350,18 @@ out:
|
|||||||
|
|
||||||
static long _dma_buf_set_name(struct dma_buf *dmabuf, const char *name)
|
static long _dma_buf_set_name(struct dma_buf *dmabuf, const char *name)
|
||||||
{
|
{
|
||||||
long ret = 0;
|
|
||||||
|
|
||||||
dma_resv_lock(dmabuf->resv, NULL);
|
|
||||||
if (!list_empty(&dmabuf->attachments)) {
|
|
||||||
ret = -EBUSY;
|
|
||||||
goto out_unlock;
|
|
||||||
}
|
|
||||||
spin_lock(&dmabuf->name_lock);
|
spin_lock(&dmabuf->name_lock);
|
||||||
kfree(dmabuf->name);
|
kfree(dmabuf->name);
|
||||||
dmabuf->name = name;
|
dmabuf->name = name;
|
||||||
spin_unlock(&dmabuf->name_lock);
|
spin_unlock(&dmabuf->name_lock);
|
||||||
|
|
||||||
out_unlock:
|
return 0;
|
||||||
dma_resv_unlock(dmabuf->resv);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dma_buf_set_name - Set a name to a specific dma_buf to track the usage.
|
* dma_buf_set_name - Set a name to a specific dma_buf to track the usage.
|
||||||
* The name of the dma-buf buffer can only be set when the dma-buf is not
|
* It could support changing the name of the dma-buf if the same piece of
|
||||||
* attached to any devices. It could theoritically support changing the
|
* memory is used for multiple purpose between different devices.
|
||||||
* name of the dma-buf if the same piece of memory is used for multiple
|
|
||||||
* purpose between different devices.
|
|
||||||
*
|
*
|
||||||
* @dmabuf: [in] dmabuf buffer that will be renamed.
|
* @dmabuf: [in] dmabuf buffer that will be renamed.
|
||||||
* @buf: [in] A piece of userspace memory that contains the name of
|
* @buf: [in] A piece of userspace memory that contains the name of
|
||||||
|
Reference in New Issue
Block a user