Inter-revision diff: patch 6

Comparing v5 (message) to v6 (message)

--- v5
+++ v6
@@ -10,16 +10,17 @@
 
 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          |   52 ++++++++++++++++++++++++++++++++++++++++
- include/linux/memory_hotplug.h |   11 +-------
+ arch/x86/mm/init_64.c          |   58 ++++++++++++++++++++++++++++++++++++++++
+ include/linux/memory_hotplug.h |   11 +------
  include/linux/mm.h             |    3 +-
- mm/memory_hotplug.c            |   33 ++++++++++++++++++++++---
- 8 files changed, 109 insertions(+), 14 deletions(-)
+ mm/memory_hotplug.c            |   33 ++++++++++++++++++++---
+ 8 files changed, 115 insertions(+), 14 deletions(-)
 
 diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c
 index c641333..33943db 100644
@@ -70,7 +71,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 85be1ca..7e28c9e 100644
+index c3b7242..1f30db3 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)
@@ -87,10 +88,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..aeaa27e 100644
+index f78509c..9ac1723 100644
 --- a/arch/x86/mm/init_64.c
 +++ b/arch/x86/mm/init_64.c
-@@ -1000,6 +1000,58 @@ vmemmap_populate(struct page *start_page, unsigned long size, int node)
+@@ -1000,6 +1000,64 @@ vmemmap_populate(struct page *start_page, unsigned long size, int node)
  	return 0;
  }
  
@@ -103,6 +104,8 @@
 +	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;
@@ -140,8 +143,12 @@
 +			pmd = pmd_offset(pud, addr);
 +			if (pmd_none(*pmd))
 +				continue;
-+			get_page_bootmem(section_nr, pmd_page(*pmd),
-+					 SECTION_INFO);
++
++			nr_pages = 1 << (get_order(PMD_SIZE));
++			page = pmd_page(*pmd);
++			while (nr_pages--)
++				get_page_bootmem(section_nr, page++,
++						 SECTION_INFO);
 +		}
 +	}
 +}
@@ -188,7 +195,7 @@
  enum mf_flags {
  	MF_COUNT_INCREASED = 1 << 0,
 diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
-index 2c5d734..34c656b 100644
+index f6724c2..0682d2a 100644
 --- a/mm/memory_hotplug.c
 +++ b/mm/memory_hotplug.c
 @@ -91,9 +91,8 @@ static void release_memory_resource(struct resource *res)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help