aboutsummaryrefslogtreecommitdiff
path: root/mm/page_isolation.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-11-11 09:16:20 +0100
committerIngo Molnar <mingo@elte.hu>2008-11-11 09:16:20 +0100
commit45b86a96f17cb2900f291129b0e67287400e45b2 (patch)
treef7968bf36e3947ee42251f7eebc6ea5f24aca202 /mm/page_isolation.c
parent072ba49838b42c873c496d72c91bb237914cf3b6 (diff)
parent4143c5cb36331155a1823af8b3a8c761a59fed71 (diff)
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent
Diffstat (limited to 'mm/page_isolation.c')
-rw-r--r--mm/page_isolation.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index b70a7fec1ff..5e0ffd96745 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -130,10 +130,11 @@ int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn)
if (page && get_pageblock_migratetype(page) != MIGRATE_ISOLATE)
break;
}
- if (pfn < end_pfn)
+ page = __first_valid_page(start_pfn, end_pfn - start_pfn);
+ if ((pfn < end_pfn) || !page)
return -EBUSY;
/* Check all pages are free or Marked as ISOLATED */
- zone = page_zone(pfn_to_page(pfn));
+ zone = page_zone(page);
spin_lock_irqsave(&zone->lock, flags);
ret = __test_page_isolated_in_pageblock(start_pfn, end_pfn);
spin_unlock_irqrestore(&zone->lock, flags);