linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Patch v2] mm/sparsemem: get address to page struct instead of address to pfn
@ 2020-02-10  0:50 Wei Yang
  2020-02-10  9:00 ` David Hildenbrand
  0 siblings, 1 reply; 7+ messages in thread
From: Wei Yang @ 2020-02-10  0:50 UTC (permalink / raw)
  To: akpm, osalvador, dan.j.williams
  Cc: linux-mm, linux-kernel, Wei Yang, David Hildenbrand, Baoquan He

memmap should be the address to page struct instead of address to pfn.

As mentioned by David, if system memory and devmem sit within a
section, the mismatch address would lead kdump to dump unexpected
memory.

Since sub-section only works for SPARSEMEM_VMEMMAP, pfn_to_page() is
valid to get the page struct address at this point.

Fixes: ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
CC: Dan Williams <dan.j.williams@intel.com>
CC: David Hildenbrand <david@redhat.com>
CC: Baoquan He <bhe@redhat.com>

---
v2:
  * adjust comment to mention the mismatch data would affect kdump

---
 mm/sparse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/sparse.c b/mm/sparse.c
index 586d85662978..4862ec2cfbc0 100644
--- a/mm/sparse.c
+++ b/mm/sparse.c
@@ -887,7 +887,7 @@ int __meminit sparse_add_section(int nid, unsigned long start_pfn,
 
 	/* Align memmap to section boundary in the subsection case */
 	if (section_nr_to_pfn(section_nr) != start_pfn)
-		memmap = pfn_to_kaddr(section_nr_to_pfn(section_nr));
+		memmap = pfn_to_page(section_nr_to_pfn(section_nr));
 	sparse_init_one_section(ms, section_nr, memmap, ms->usage, 0);
 
 	return 0;
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-02-12 11:22 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-10  0:50 [Patch v2] mm/sparsemem: get address to page struct instead of address to pfn Wei Yang
2020-02-10  9:00 ` David Hildenbrand
2020-02-10  9:13   ` David Hildenbrand
2020-02-10 23:16   ` Wei Yang
2020-02-11 14:01     ` David Hildenbrand
2020-02-12  2:28       ` Wei Yang
2020-02-12 11:22         ` David Hildenbrand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).