Re: [PATCH v3 6/7] mm/memory_hotplug: Add pgprot_t to mhp_params
From: David Hildenbrand <hidden>
Date: 2020-02-24 09:26:28
Also in:
linux-mm, linux-s390, linux-sh, linuxppc-dev, lkml, platform-driver-x86
On 21.02.20 19:25, Logan Gunthorpe wrote:
devm_memremap_pages() is currently used by the PCI P2PDMA code to create struct page mappings for IO memory. At present, these mappings are created with PAGE_KERNEL which implies setting the PAT bits to be WB. However, on x86, an mtrr register will typically override this and force the cache type to be UC-. In the case firmware doesn't set this register it is effectively WB and will typically result in a machine check exception when it's accessed. Other arches are not currently likely to function correctly seeing they don't have any MTRR registers to fall back on. To solve this, provide a way to specify the pgprot value explicitly to arch_add_memory(). Of the arches that support MEMORY_HOTPLUG: x86_64, and arm64 need a simple change to pass the pgprot_t down to their respective functions which set up the page tables. For x86_32, set the page tables explicitly using _set_memory_prot() (seeing they are already mapped). For ia64, s390 and sh, reject anything but PAGE_KERNEL settings -- this should be fine, for now, seeing these architectures don't support ZONE_DEVICE. A check in __add_pages() is also added to ensure the pgprot parameter was set for all arches. Cc: Dan Williams <redacted> Signed-off-by: Logan Gunthorpe <logang@deltatee.com> Acked-by: David Hildenbrand <redacted> Acked-by: Michal Hocko <mhocko@suse.com>
[...]
quoted hunk ↗ jump to hunk
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index c5df1b3dada0..30d6c1b8847e 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h@@ -56,9 +56,11 @@ enum { /* * Extended parameters for memory hotplug: * altmap: alternative allocator for memmap array (optional) + * pgprot: page protection flags to apply to newly added page tables (required)
s/added/created/? -- Thanks, David / dhildenb _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel