]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
binfmt_misc: replace __get_free_page() with kmalloc()
authorMike Rapoport (Microsoft) <rppt@kernel.org>
Sat, 23 May 2026 17:54:28 +0000 (20:54 +0300)
committerChristian Brauner <brauner@kernel.org>
Thu, 28 May 2026 11:58:14 +0000 (13:58 +0200)
bm_entry_read() allocates temporary buffer using __get_free_page().

kmalloc() is a better API for such use and it also provides better
scalability and more debugging possibilities.

Replace use of __get_free_page() with kmalloc().

Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Link: https://patch.msgid.link/20260523-b4-fs-v1-16-275e36a83f0e@kernel.org
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/binfmt_misc.c

index b3d8fd70e8b1c0daa52a690fdce8b92008285c4b..84349fcb93f13ac327841fe2cd7d8659c55404f3 100644 (file)
@@ -704,7 +704,7 @@ bm_entry_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
        ssize_t res;
        char *page;
 
-       page = (char *) __get_free_page(GFP_KERNEL);
+       page = kmalloc(PAGE_SIZE, GFP_KERNEL);
        if (!page)
                return -ENOMEM;
 
@@ -712,7 +712,7 @@ bm_entry_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos)
 
        res = simple_read_from_buffer(buf, nbytes, ppos, page, strlen(page));
 
-       free_page((unsigned long) page);
+       kfree(page);
        return res;
 }