public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dma-buf: improve dma_buf_show_fdinfo output
@ 2025-10-21 13:31 Biancaa Ramesh
  2025-10-22  0:41 ` kernel test robot
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Biancaa Ramesh @ 2025-10-21 13:31 UTC (permalink / raw)
  To: linux-kernel; +Cc: Biancaa Ramesh

dma_buf_show_fdinfo functions into a single function
that prints size, count, flags, attachments, mappings, exp_name, and
name safely with proper spinlock protection for name access.

Signed-off-by: Biancaa Ramesh <biancaa2210329@ssn.edu.in>
---
 drivers/dma-buf/dma-buf.c | 49 ++++++++++++++++++++++++---------------
 1 file changed, 30 insertions(+), 19 deletions(-)

diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
index 2bcf9ceca997..1c0035601c4f 100644
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -394,17 +394,21 @@ static __poll_t dma_buf_poll(struct file *file, poll_table *poll)
  */
 static long dma_buf_set_name(struct dma_buf *dmabuf, const char __user *buf)
 {
-	char *name = strndup_user(buf, DMA_BUF_NAME_LEN);
+    char *name;
 
-	if (IS_ERR(name))
-		return PTR_ERR(name);
+    if (!buf)
+        return -EINVAL;
 
-	spin_lock(&dmabuf->name_lock);
-	kfree(dmabuf->name);
-	dmabuf->name = name;
-	spin_unlock(&dmabuf->name_lock);
+    name = strndup_user(buf, DMA_BUF_NAME_LEN);
+    if (IS_ERR(name))
+        return PTR_ERR(name);
 
-	return 0;
+    spin_lock(&dmabuf->name_lock);
+    kfree(dmabuf->name);
+    dmabuf->name = name;
+    spin_unlock(&dmabuf->name_lock);
+
+    return 0;
 }
 
 #if IS_ENABLED(CONFIG_SYNC_FILE)
@@ -567,20 +571,27 @@ static long dma_buf_ioctl(struct file *file,
 	}
 }
 
-static void dma_buf_show_fdinfo(struct seq_file *m, struct file *file)
+static void dma_buf_show_fdinfo(struct seq_file *s, struct file *f)
 {
-	struct dma_buf *dmabuf = file->private_data;
-
-	seq_printf(m, "size:\t%zu\n", dmabuf->size);
-	/* Don't count the temporary reference taken inside procfs seq_show */
-	seq_printf(m, "count:\t%ld\n", file_count(dmabuf->file) - 1);
-	seq_printf(m, "exp_name:\t%s\n", dmabuf->exp_name);
-	spin_lock(&dmabuf->name_lock);
-	if (dmabuf->name)
-		seq_printf(m, "name:\t%s\n", dmabuf->name);
-	spin_unlock(&dmabuf->name_lock);
+    struct dma_buf *dmabuf = f->private_data;
+
+    if (!dmabuf)
+        return;
+
+    seq_printf(s, "flags:\t%lu\n", f->f_flags);
+    seq_printf(s, "size:\t%llu\n", dmabuf->size);
+    seq_printf(s, "count:\t%ld\n", file_count(dmabuf->file) - 1);
+    seq_printf(s, "attachments:\t%d\n", atomic_read(&dmabuf->num_attachments));
+    seq_printf(s, "mappings:\t%d\n", atomic_read(&dmabuf->num_mappings));
+    seq_printf(s, "exp_name:\t%s\n", dmabuf->exp_name ? dmabuf->exp_name : "N/A");
+
+    spin_lock(&dmabuf->name_lock);
+    if (dmabuf->name)
+        seq_printf(s, "name:\t%s\n", dmabuf->name);
+    spin_unlock(&dmabuf->name_lock);
 }
 
+
 static const struct file_operations dma_buf_fops = {
 	.release	= dma_buf_file_release,
 	.mmap		= dma_buf_mmap_internal,
-- 
2.43.0


-- 
::DISCLAIMER::

---------------------------------------------------------------------
The 
contents of this e-mail and any attachment(s) are confidential and
intended 
for the named recipient(s) only. Views or opinions, if any,
presented in 
this email are solely those of the author and may not
necessarily reflect 
the views or opinions of SSN Institutions (SSN) or its
affiliates. Any form 
of reproduction, dissemination, copying, disclosure,
modification, 
distribution and / or publication of this message without the
prior written 
consent of authorized representative of SSN is strictly
prohibited. If you 
have received this email in error please delete it and
notify the sender 
immediately.
---------------------------------------------------------------------
Header of this mail should have a valid DKIM signature for the domain 
ssn.edu.in <http://www.ssn.edu.in/>

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-10-22  2:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-21 13:31 [PATCH] dma-buf: improve dma_buf_show_fdinfo output Biancaa Ramesh
2025-10-22  0:41 ` kernel test robot
2025-10-22  1:47 ` kernel test robot
2025-10-22  2:40 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox