Re: [PATCH 13/17] fs/select: replace __get_free_page() with kmalloc()
From: Jan Kara
Date: Mon May 25 2026 - 12:21:35 EST
On Sat 23-05-26 20:54:25, Mike Rapoport (Microsoft) wrote:
> 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@xxxxxxxxxx>
Looks good. Feel free to add:
Reviewed-by: Jan Kara <jack@xxxxxxx>
Honza
> ---
> fs/select.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/select.c b/fs/select.c
> index 75978b18f48f..6fa63e48cdee 100644
> --- a/fs/select.c
> +++ b/fs/select.c
> @@ -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;
>
> --
> 2.53.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR