Re: [PATCH resend] mm/page_alloc: fix comment is __get_free_pages

From: Michal Hocko
Date: Fri Apr 06 2018 - 06:02:47 EST


On Wed 29-11-17 17:04:46, Michal Hocko wrote:
[...]
> From 000bb422fe07adbfa8cd8ed953b18f48647a45d6 Mon Sep 17 00:00:00 2001
> From: Michal Hocko <mhocko@xxxxxxxx>
> Date: Wed, 29 Nov 2017 17:02:33 +0100
> Subject: [PATCH] mm: drop VM_BUG_ON from __get_free_pages
>
> There is no real reason to blow up just because the caller doesn't know
> that __get_free_pages cannot return highmem pages. Simply fix that up
> silently. Even if we have some confused users such a fixup will not be
> harmful.
>
> Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>

Andrew, have we reached any conclusion for this? Should I repost or drop
it on the floor?

> ---
> mm/page_alloc.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 0d518e9b2ee8..3dd960ea8c13 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -4284,9 +4284,7 @@ unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order)
> * __get_free_pages() returns a virtual address, which cannot represent
> * a highmem page
> */
> - VM_BUG_ON((gfp_mask & __GFP_HIGHMEM) != 0);
> -
> - page = alloc_pages(gfp_mask, order);
> + page = alloc_pages(gfp_mask & ~__GFP_HIGHMEM, order);
> if (!page)
> return 0;
> return (unsigned long) page_address(page);
> --
> 2.15.0
>
> --
> Michal Hocko
> SUSE Labs

--
Michal Hocko
SUSE Labs