Merge branch 'core-resources-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 14 Mar 2016 22:15:51 +0000 (15:15 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 14 Mar 2016 22:15:51 +0000 (15:15 -0700)
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

1  2 
kernel/memremap.c

index 6cf54615a9c45181b8efdb6b61975b490b525b8f,97b31c774274f5009be2facaf4ffb37928944fb0..fb9b88787ebc269fa39a3c08a19c8d0940245bbe
@@@ -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",