Re: [PATCH] Delete meaningless check of current_order in __rmqueue_fallback

From: Michal Hocko
Date: Mon Jun 20 2016 - 10:37:30 EST


On Mon 13-06-16 03:03:31, YOSHIDA Masanori wrote:
> From: YOSHIDA Masanori <masanori.yoshida@xxxxxxxxx>
>
> Signed-off-by: YOSHIDA Masanori <masanori.yoshida@xxxxxxxxx>
> ---
> mm/page_alloc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 6903b69..db02967 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2105,7 +2105,7 @@ __rmqueue_fallback(struct zone *zone, unsigned int order, int start_migratetype)
>
> /* Find the largest possible block of pages in the other list */
> for (current_order = MAX_ORDER-1;
> - current_order >= order && current_order <= MAX_ORDER-1;
> + current_order >= order;
> --current_order) {
> area = &(zone->free_area[current_order]);
> fallback_mt = find_suitable_fallback(area, current_order,

This is incorrect. Guess what happens if the given order is 0. Hint,
current_order is unsigned int.

--
Michal Hocko
SUSE Labs