diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2012-12-18 17:21:32 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-18 18:02:12 -0500 |
commit | 0bb2c7637ef0db4f44528698fa725179fb4917ad (patch) | |
tree | 5bc0fdbd68805f8cc4a2b2c44a9d48ade1e59685 | |
parent | 3012d60b39761b0bf73e3be677d2f8e424f0b294 (diff) |
mm/page_alloc.c: remove duplicate check
While allocating pages using buddy allocator, the compound page is
probably split up to free pages. Under these circumstances, the compound
page should be destroyed by destroy_compound_page(). However, there is a
duplicate check to judge if the page is compound.
Remove the duplicate check since the compound_order() returns 0 when the
page doesn't have PG_head set in destroy_compound_page(). That is to say,
destroy_compound_page() needn't check PageHead().
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Pekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | mm/page_alloc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d037c8bc1512..62496edbd8dd 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -371,8 +371,7 @@ static int destroy_compound_page(struct page *page, unsigned long order) | |||
371 | int nr_pages = 1 << order; | 371 | int nr_pages = 1 << order; |
372 | int bad = 0; | 372 | int bad = 0; |
373 | 373 | ||
374 | if (unlikely(compound_order(page) != order) || | 374 | if (unlikely(compound_order(page) != order)) { |
375 | unlikely(!PageHead(page))) { | ||
376 | bad_page(page); | 375 | bad_page(page); |
377 | bad++; | 376 | bad++; |
378 | } | 377 | } |