--- v6
+++ v5
@@ -10,17 +10,16 @@
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Signed-off-by: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
-Reviewed-by: Wu Jianguo <wujianguo@huawei.com>
---
arch/ia64/mm/discontig.c | 6 ++++
arch/powerpc/mm/init_64.c | 6 ++++
arch/s390/mm/vmem.c | 6 ++++
arch/sparc/mm/init_64.c | 6 ++++
- arch/x86/mm/init_64.c | 58 ++++++++++++++++++++++++++++++++++++++++
- include/linux/memory_hotplug.h | 11 +------
+ arch/x86/mm/init_64.c | 52 ++++++++++++++++++++++++++++++++++++++++
+ include/linux/memory_hotplug.h | 11 +-------
include/linux/mm.h | 3 +-
- mm/memory_hotplug.c | 33 ++++++++++++++++++++---
- 8 files changed, 115 insertions(+), 14 deletions(-)
+ mm/memory_hotplug.c | 33 ++++++++++++++++++++++---
+ 8 files changed, 109 insertions(+), 14 deletions(-)
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
index c641333..33943db 100644
@@ -71,7 +70,7 @@
* Add memory segment to the segment list if it doesn't overlap with
* an already present segment.
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
-index c3b7242..1f30db3 100644
+index 85be1ca..7e28c9e 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -2231,6 +2231,12 @@ void __meminit vmemmap_populate_print_last(void)
@@ -88,10 +87,10 @@
static void prot_init_common(unsigned long page_none,
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
-index f78509c..9ac1723 100644
+index f78509c..aeaa27e 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
-@@ -1000,6 +1000,64 @@ vmemmap_populate(struct page *start_page, unsigned long size, int node)
+@@ -1000,6 +1000,58 @@ vmemmap_populate(struct page *start_page, unsigned long size, int node)
return 0;
}
@@ -104,8 +103,6 @@
+ pgd_t *pgd;
+ pud_t *pud;
+ pmd_t *pmd;
-+ unsigned int nr_pages;
-+ struct page *page;
+
+ for (; addr < end; addr = next) {
+ pte_t *pte = NULL;
@@ -143,12 +140,8 @@
+ pmd = pmd_offset(pud, addr);
+ if (pmd_none(*pmd))
+ continue;
-+
-+ nr_pages = 1 << (get_order(PMD_SIZE));
-+ page = pmd_page(*pmd);
-+ while (nr_pages--)
-+ get_page_bootmem(section_nr, page++,
-+ SECTION_INFO);
++ get_page_bootmem(section_nr, pmd_page(*pmd),
++ SECTION_INFO);
+ }
+ }
+}
@@ -195,7 +188,7 @@
enum mf_flags {
MF_COUNT_INCREASED = 1 << 0,
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
-index f6724c2..0682d2a 100644
+index 2c5d734..34c656b 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -91,9 +91,8 @@ static void release_memory_resource(struct resource *res)