summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Whitcroft <apw@shadowen.org>2008-07-23 21:27:11 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-07-24 10:47:15 -0700
commit3c82d0ce2c4f642b2f24ef98707a030543b06b90 (patch)
treebfbb2ee1919bb2bbd0e5158103c7382af73da31d
parent42b7772812d15b86543a23b82bd6070eef9a08b1 (diff)
downloadlinux-3c82d0ce2c4f642b2f24ef98707a030543b06b90.tar.gz
linux-3c82d0ce2c4f642b2f24ef98707a030543b06b90.tar.bz2
linux-3c82d0ce2c4f642b2f24ef98707a030543b06b90.zip
buddy: clarify comments describing buddy merge
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>
-rw-r--r--mm/page_alloc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 35b1347d81bb..24aa3d1b9d96 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -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);