ACPI 6.0 defines persistent memory (PMEM) ranges in multiple firmware interfaces, e820, EFI, and ACPI NFIT table. This EFI change, however, leads to hit a bug in the grub bootloader, which treats EFI_PERSISTENT_MEMORY type as regular memory and corrupts stored user data [1]. Therefore, BIOS may set generic reserved type in e820 and EFI to cover PMEM ranges. The kernel can initialize PMEM ranges from ACPI NFIT table alone. This scheme cause a problem in the iomem table, though. On x86, for instance, e820_reserve_resources() initializes top-level entries (iomem_resource.child) from the e820 table at early boot-time. This creates "reserved" entry for a PMEM range, which does not allow region_intersects() to check with PMEM type. This patch-set introduces devm_insert/remove_resource(), and changes the NFIT driver to insert a PMEM entry to the iomem table. [1] https://lists.gnu.org/archive/html/grub-devel/2015-11/msg00209.html Patch 1 fixes __request_region() to handle inheritance of attribute properly. This patch is independent from this series. Patch 2 adds remove_resource() interface. Patch 3 adds devm_insert_resource() and devm_remove_resouce(). Patch 4 changes the ACPI nfit driver to call devm_insert_resource() to insert a PMEM range from NFIT. --- v2: - Change the NFIT driver to call insert_resource() to insert a PMEM entry when necessary. (Dan Williams) - The NFIT driver still needs to allow unloading. (Dan Williams) --- This patch-set is based on the tip tree, which has the following patchset. https://lkml.org/lkml/2016/1/26/886 --- Toshi Kani (4): 1/4 resource: Change __request_region to inherit from immediate parent 2/4 resource: Add remove_resource interface 3/4 resource: Add device-managed insert/remove_resource() 4/4 ACPI: Change NFIT driver to insert new resource --- drivers/acpi/nfit.c | 30 ++++++++++++ include/linux/ioport.h | 6 +++ kernel/resource.c | 127 +++++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 155 insertions(+), 8 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html