summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorGavin Shan <shangw@linux.vnet.ibm.com>2012-12-18 14:21:32 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2012-12-18 15:02:12 -0800
commit0bb2c7637ef0db4f44528698fa725179fb4917ad (patch)
tree5bc0fdbd68805f8cc4a2b2c44a9d48ade1e59685 /mm
parent3012d60b39761b0bf73e3be677d2f8e424f0b294 (diff)
downloadlinux-3.10-0bb2c7637ef0db4f44528698fa725179fb4917ad.tar.gz
linux-3.10-0bb2c7637ef0db4f44528698fa725179fb4917ad.tar.bz2
linux-3.10-0bb2c7637ef0db4f44528698fa725179fb4917ad.zip
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>
Diffstat (limited to 'mm')
-rw-r--r--mm/page_alloc.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index d037c8bc151..62496edbd8d 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)
int nr_pages = 1 << order;
int bad = 0;
- if (unlikely(compound_order(page) != order) ||
- unlikely(!PageHead(page))) {
+ if (unlikely(compound_order(page) != order)) {
bad_page(page);
bad++;
}