[PATCH v3 00/17] Enhance iomem search interfaces and support EINJ to NVDIMM
From: Toshi Kani
Date: Tue Jan 05 2016 - 13:55:19 EST
This patch-set enhances the iomem table and its search interfacs, and
then changes EINJ to support NVDIMM.
- Patches 1-2 add a new System RAM type, IORESOURCE_SYSTEM_RAM, and
make the iomem search interfaces work with resource flags with
modifier bits set. IORESOURCE_SYSTEM_RAM has IORESOURCE_MEM bit set
for backward compatibility.
- Patch 3 adds a new field, I/O resource descriptor, into struct resource.
Drivers can assign their unique descritor to a range when they support
the iomem search interfaces.
- Patches 4-9 changes initializations of resource entries. They set
the System RAM type to System RAM ranges, set I/O resource descriptors
to the regions targeted by the iomem search interfaces, and change
to call kzalloc() where kmalloc() is used to allocate struct resource
ranges.
- Patches 10-14 extend the iomem interfaces to check System RAM ranges
with the System RAM type and the I/O resource descriptor.
- Patch 15-16 remove deprecated walk_iomem_res().
- Patch 17 changes the EINJ driver to allow injecting a memory error
to NVDIMM.
---
v3:
- Remove the walk_iomem_res() call with "GART" in crash.c since it is
no longer needed. Then kill walk_iomem_res(). (Borislav Petkov,
Dave Young)
- Change to use crashk_res.desc at the walk_iomem_res_desc() call in
kexec_add_buffer(). (Minfei Huang)
v2:
- Add 'desc' to struct resource, and add a new iomem interface to
search with the desc. (Borislav Petkov)
- Add a check to checkpatch.pl to warn on new use of walk_iomem_res().
(Borislav Petkov)
v1:
- Searching for System RAM in the resource table should not require
strcmp(). (Borislav Petkov)
- Add a new System RAM type as a modifier to IORESOURCE_MEM.
(Linus Torvalds)
- NVDIMM check needs to be able to distinguish legacy and NFIT pmem
ranges. (Dan Williams)
---
Toshi Kani (17):
01/17 resource: Add System RAM resource type
02/17 resource: make resource flags handled properly
03/17 resource: Add I/O resource descriptor
04/17 x86/e820: Set System RAM type and descriptor
05/17 ia64: Set System RAM type and descriptor
06/17 arch: Set IORESOURCE_SYSTEM_RAM to System RAM
07/17 kexec: Set IORESOURCE_SYSTEM_RAM to System RAM
08/17 xen, mm: Set IORESOURCE_SYSTEM_RAM to System RAM
09/17 drivers: Initialize resource entry to zero
10/17 resource: Change walk_system_ram to use System RAM type
11/17 arm/samsung: Change s3c_pm_run_res() to use System RAM type
12/17 memremap: Change region_intersects() to take @flags and @desc
13/17 resource: Add walk_iomem_res_desc()
14/17 x86,nvdimm,kexec: Use walk_iomem_res_desc() for iomem search
15/17 x86/kexec: Remove walk_iomem_res() call with GART
16/17 resource: Kill walk_iomem_res()
17/17 ACPI/EINJ: Allow memory error injection to NVDIMM
---
arch/arm/kernel/setup.c | 6 +--
arch/arm/plat-samsung/pm-check.c | 4 +-
arch/arm64/kernel/setup.c | 6 +--
arch/avr32/kernel/setup.c | 6 +--
arch/ia64/kernel/efi.c | 13 ++++--
arch/ia64/kernel/setup.c | 6 +--
arch/m32r/kernel/setup.c | 4 +-
arch/mips/kernel/setup.c | 10 +++--
arch/parisc/mm/init.c | 6 +--
arch/powerpc/mm/mem.c | 2 +-
arch/s390/kernel/setup.c | 8 ++--
arch/score/kernel/setup.c | 2 +-
arch/sh/kernel/setup.c | 8 ++--
arch/sparc/mm/init_64.c | 8 ++--
arch/tile/kernel/setup.c | 11 +++--
arch/unicore32/kernel/setup.c | 6 +--
arch/x86/kernel/crash.c | 41 ++-----------------
arch/x86/kernel/e820.c | 38 ++++++++++++++++-
arch/x86/kernel/pmem.c | 4 +-
arch/x86/kernel/setup.c | 6 +--
drivers/acpi/acpi_platform.c | 2 +-
drivers/acpi/apei/einj.c | 15 +++++--
drivers/nvdimm/e820.c | 2 +-
drivers/parisc/eisa_enumerator.c | 4 +-
drivers/rapidio/rio.c | 8 ++--
drivers/sh/superhyway/superhyway.c | 2 +-
drivers/xen/balloon.c | 2 +-
include/linux/ioport.h | 33 ++++++++++++++-
include/linux/mm.h | 3 +-
kernel/kexec_core.c | 8 ++--
kernel/kexec_file.c | 8 ++--
kernel/memremap.c | 13 +++---
kernel/resource.c | 83 ++++++++++++++++++++++----------------
mm/memory_hotplug.c | 2 +-
34 files changed, 225 insertions(+), 155 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/