* Re: [PATCH] mm/memory_hotplug: add pgprot_t to mhp_params
@ 2020-03-13 14:52 Guenter Roeck
0 siblings, 0 replies; only message in thread
From: Guenter Roeck @ 2020-03-13 14:52 UTC (permalink / raw)
To: linux-sh
On Fri, Mar 13, 2020 at 04:10:21PM +1100, 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.
>
...
> diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
> index e5114c053364..b9de2d4fa57e 100644
> --- a/arch/sh/mm/init.c
> +++ b/arch/sh/mm/init.c
> @@ -412,6 +412,9 @@ int arch_add_memory(int nid, u64 start, u64 size,
> unsigned long nr_pages = size >> PAGE_SHIFT;
> int ret;
>
> + if (WARN_ON_ONCE(params->pgprot.pgprot != PAGE_KERNEL.pgprot)
> + return -EINVAL;
Compile test ?
Guenter
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-03-13 14:52 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-13 14:52 [PATCH] mm/memory_hotplug: add pgprot_t to mhp_params Guenter Roeck
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.