linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] seq_file: replace kzalloc() with kvzalloc()
@ 2024-09-06  8:00 Hailong Liu
  2024-09-06  9:25 ` Barry Song
  0 siblings, 1 reply; 4+ messages in thread
From: Hailong Liu @ 2024-09-06  8:00 UTC (permalink / raw)
  To: viro, brauner; +Cc: jack, linux-fsdevel, linux-kernel, linux-mm, Hailong Liu

__seq_open_private() uses kzalloc() to allocate a private buffer. However,
the size of the buffer might be greater than order-3, which may cause
allocation failure. To address this issue, use kvzalloc instead.

Signed-off-by: Hailong Liu <hailong.liu@oppo.com>
---
 fs/seq_file.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/seq_file.c b/fs/seq_file.c
index e676c8b0cf5d..cf23143bbb65 100644
--- a/fs/seq_file.c
+++ b/fs/seq_file.c
@@ -621,7 +621,7 @@ int seq_release_private(struct inode *inode, struct file *file)
 {
 	struct seq_file *seq = file->private_data;
 
-	kfree(seq->private);
+	kvfree(seq->private);
 	seq->private = NULL;
 	return seq_release(inode, file);
 }
@@ -634,7 +634,7 @@ void *__seq_open_private(struct file *f, const struct seq_operations *ops,
 	void *private;
 	struct seq_file *seq;
 
-	private = kzalloc(psize, GFP_KERNEL_ACCOUNT);
+	private = kvzalloc(psize, GFP_KERNEL_ACCOUNT);
 	if (private == NULL)
 		goto out;
 
@@ -647,7 +647,7 @@ void *__seq_open_private(struct file *f, const struct seq_operations *ops,
 	return private;
 
 out_free:
-	kfree(private);
+	kvfree(private);
 out:
 	return NULL;
 }
-- 
2.30.0



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

end of thread, other threads:[~2024-09-06 10:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-09-06  8:00 [PATCH] seq_file: replace kzalloc() with kvzalloc() Hailong Liu
2024-09-06  9:25 ` Barry Song
2024-09-06  9:55   ` Hailong Liu
2024-09-06 10:34     ` Barry Song

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