]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs/select: replace __get_free_page() with kmalloc()
authorMike Rapoport (Microsoft) <rppt@kernel.org>
Sat, 23 May 2026 17:54:25 +0000 (20:54 +0300)
committerChristian Brauner <brauner@kernel.org>
Wed, 27 May 2026 13:12:24 +0000 (15:12 +0200)
poll_get_entry() allocates new memory for poll_table entries 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-13-275e36a83f0e@kernel.org
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
fs/select.c

index 75978b18f48f8bf0490c87618e05235e6a238d3a..6fa63e48cdeee921a4a53aa64e14b8fce75bd9aa 100644 (file)
@@ -150,7 +150,7 @@ void poll_freewait(struct poll_wqueues *pwq)
                } while (entry > p->entries);
                old = p;
                p = p->next;
-               free_page((unsigned long) old);
+               kfree(old);
        }
 }
 EXPORT_SYMBOL(poll_freewait);
@@ -165,7 +165,7 @@ static struct poll_table_entry *poll_get_entry(struct poll_wqueues *p)
        if (!table || POLL_TABLE_FULL(table)) {
                struct poll_table_page *new_table;
 
-               new_table = (struct poll_table_page *) __get_free_page(GFP_KERNEL);
+               new_table = kmalloc(PAGE_SIZE, GFP_KERNEL);
                if (!new_table) {
                        p->error = -ENOMEM;
                        return NULL;