diff options
author | Gavin Shan <shangw@linux.vnet.ibm.com> | 2012-12-18 14:21:32 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-18 15:02:12 -0800 |
commit | 0bb2c7637ef0db4f44528698fa725179fb4917ad (patch) | |
tree | 5bc0fdbd68805f8cc4a2b2c44a9d48ade1e59685 /mm/page_alloc.c | |
parent | 3012d60b39761b0bf73e3be677d2f8e424f0b294 (diff) | |
download | linux-stable-0bb2c7637ef0db4f44528698fa725179fb4917ad.tar.gz linux-stable-0bb2c7637ef0db4f44528698fa725179fb4917ad.tar.bz2 linux-stable-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/page_alloc.c')
-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) 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++; } |