]> err.no Git - linux-2.6/commitdiff
buddy: clarify comments describing buddy merge
authorAndy Whitcroft <apw@shadowen.org>
Thu, 24 Jul 2008 04:27:11 +0000 (21:27 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 17:47:15 +0000 (10:47 -0700)
In __free_one_page(), the comment "Move the buddy up one level" appears
attached to the break and by implication when the break is taken we are
moving it up one level:

if (!page_is_buddy(page, buddy, order))
break;          /* Move the buddy up one level. */

In reality the inverse is true, we break out when we can no longer merge
this page with its buddy.  Looking back into pre-history (into the full
git history) it appears that these two lines accidentally got joined as
part of another change.

Move the comment down where it belongs below the if and clarify its
language.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_alloc.c

index 35b1347d81bb77927dc61120ed6d22f7425329b4..24aa3d1b9d9698770831be0c512164a1cd64fd62 100644 (file)
@@ -432,8 +432,9 @@ static inline void __free_one_page(struct page *page,
 
                buddy = __page_find_buddy(page, page_idx, order);
                if (!page_is_buddy(page, buddy, order))
-                       break;          /* Move the buddy up one level. */
+                       break;
 
+               /* Our buddy is free, merge with it and move up one order. */
                list_del(&buddy->lru);
                zone->free_area[order].nr_free--;
                rmv_page_order(buddy);