From: Linus Torvalds Date: Mon, 14 Mar 2016 22:15:51 +0000 (-0700) Subject: Merge branch 'core-resources-for-linus' of git://git.kernel.org/pub/scm/linux/kernel... X-Git-Tag: v4.14-rc1~3687 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d37a14bb5fed13a52dada3fa9ef4488ac588b35e;p=platform%2Fkernel%2Flinux-rpi.git Merge branch 'core-resources-for-linus' of git://git./linux/kernel/git/tip/tip Pull ram resource handling changes from Ingo Molnar: "Core kernel resource handling changes to support NVDIMM error injection. This tree introduces a new I/O resource type, IORESOURCE_SYSTEM_RAM, for System RAM while keeping the current IORESOURCE_MEM type bit set for all memory-mapped ranges (including System RAM) for backward compatibility. With this resource flag it no longer takes a strcmp() loop through the resource tree to find "System RAM" resources. The new resource type is then used to extend ACPI/APEI error injection facility to also support NVDIMM" * 'core-resources-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: ACPI/EINJ: Allow memory error injection to NVDIMM resource: Kill walk_iomem_res() x86/kexec: Remove walk_iomem_res() call with GART type x86, kexec, nvdimm: Use walk_iomem_res_desc() for iomem search resource: Add walk_iomem_res_desc() memremap: Change region_intersects() to take @flags and @desc arm/samsung: Change s3c_pm_run_res() to use System RAM type resource: Change walk_system_ram() to use System RAM type drivers: Initialize resource entry to zero xen, mm: Set IORESOURCE_SYSTEM_RAM to System RAM kexec: Set IORESOURCE_SYSTEM_RAM for System RAM arch: Set IORESOURCE_SYSTEM_RAM flag for System RAM ia64: Set System RAM type and descriptor x86/e820: Set System RAM type and descriptor resource: Add I/O resource descriptor resource: Handle resource flags properly resource: Add System RAM resource type --- d37a14bb5fed13a52dada3fa9ef4488ac588b35e diff --cc kernel/memremap.c index 6cf5461,97b31c7..fb9b887 --- a/kernel/memremap.c +++ b/kernel/memremap.c @@@ -273,13 -274,10 +274,14 @@@ void *devm_memremap_pages(struct devic resource_size_t key, align_start, align_size, align_end; struct dev_pagemap *pgmap; struct page_map *page_map; + int error, nid, is_ram; unsigned long pfn; - int error, nid; + + align_start = res->start & ~(SECTION_SIZE - 1); + align_size = ALIGN(res->start + resource_size(res), SECTION_SIZE) + - align_start; - is_ram = region_intersects(align_start, align_size, "System RAM"); ++ is_ram = region_intersects(align_start, align_size, ++ IORESOURCE_SYSTEM_RAM, IORES_DESC_NONE); if (is_ram == REGION_MIXED) { WARN_ONCE(1, "%s attempted on mixed region %pr\n",