|
@@ -1483,7 +1483,7 @@ bool is_mem_section_removable(unsigned long start_pfn, unsigned long nr_pages)
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
- * Confirm all pages in a range [start, end) is belongs to the same zone.
|
|
|
+ * Confirm all pages in a range [start, end) belong to the same zone.
|
|
|
*/
|
|
|
int test_pages_in_a_zone(unsigned long start_pfn, unsigned long end_pfn)
|
|
|
{
|
|
@@ -1491,9 +1491,9 @@ int test_pages_in_a_zone(unsigned long start_pfn, unsigned long end_pfn)
|
|
|
struct zone *zone = NULL;
|
|
|
struct page *page;
|
|
|
int i;
|
|
|
- for (pfn = start_pfn, sec_end_pfn = SECTION_ALIGN_UP(start_pfn);
|
|
|
+ for (pfn = start_pfn, sec_end_pfn = SECTION_ALIGN_UP(start_pfn + 1);
|
|
|
pfn < end_pfn;
|
|
|
- pfn = sec_end_pfn + 1, sec_end_pfn += PAGES_PER_SECTION) {
|
|
|
+ pfn = sec_end_pfn, sec_end_pfn += PAGES_PER_SECTION) {
|
|
|
/* Make sure the memory section is present first */
|
|
|
if (!present_section_nr(pfn_to_section_nr(pfn)))
|
|
|
continue;
|
|
@@ -1512,7 +1512,11 @@ int test_pages_in_a_zone(unsigned long start_pfn, unsigned long end_pfn)
|
|
|
zone = page_zone(page);
|
|
|
}
|
|
|
}
|
|
|
- return 1;
|
|
|
+
|
|
|
+ if (zone)
|
|
|
+ return 1;
|
|
|
+ else
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
/*
|