On Tue, Feb 2, 2016 at 10:55 AM, Toshi Kani <toshi.kani@xxxxxxx> wrote: > Change acpi_nfit_register_region() to call iomem_set_desc() with > IORES_DESC_PERSISTENT_MEMORY for NFIT_SPA_PM ranges found in ACPI > NFIT table. > > When FW sets E820_PMEM in e820 and EFI_PERSISTENT_MEMORY in EFI, > this code simply sets PMEM type again to "Persistent Memory" entries > in the iomem table. When FW sets reserved type for persistent > memory ranges, it sets PMEM type to "reserved" entries covering > PMEM ranges. > > This allows the EINJ driver, which calls region_intersects() with > IORES_DESC_PERSISTENT_MEMORY to check persistent memory ranges, > to work continuously even if FW sets reserved type to persistent > memory in e820 and EFI. > > Signed-off-by: Toshi Kani <toshi.kani@xxxxxxx> > Cc: Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> > Cc: Dan Williams <dan.j.williams@xxxxxxxxx> > Cc: Ingo Molnar <mingo@xxxxxxxxxx> > Cc: Borislav Petkov <bp@xxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > --- > drivers/acpi/nfit.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/acpi/nfit.c b/drivers/acpi/nfit.c > index ad6d8c6..add04f0 100644 > --- a/drivers/acpi/nfit.c > +++ b/drivers/acpi/nfit.c > @@ -1781,6 +1781,12 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc, > > nvdimm_bus = acpi_desc->nvdimm_bus; > if (nfit_spa_type(spa) == NFIT_SPA_PM) { > + rc = iomem_set_desc(spa->address, spa->length, > + IORES_DESC_PERSISTENT_MEMORY); > + if (rc) > + dev_dbg(acpi_desc->dev, > + "error setting iomem desc: %d\n", rc); > + Hmm, if we set the type on driver load, should we clear the type on driver unload? Actually it might be more straightforward to specify a type at request_region() time. That way it gets released at release_region(). We're already setting a resource name at request_region time, adding a type annotation at the time seems appropriate. -- 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