On Mon, Aug 22, 2011 at 9:45 AM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: > On Mon, Aug 22, 2011 at 1:12 AM, Huang Ying <ying.huang@xxxxxxxxx> wrote: >> Do you have time to try the patch attached with the mail? >> acpi_nvs.patch should go first. > > In this case, we have an ACPI NVS region, and the APEI code is > essentially a driver for some registers that reside there. APEI is > the entity that manages those registers, and it needs to enforce > mutual exclusion so nobody else touches them behind its back, so I > think it makes sense for it to request the register regions and mark > them busy. > > My proposal is to change e820 so it either leaves ACPI NVS out of the > iomem_resource tree or puts it in but leaves it non-busy. assume Huang Ying only tested with UEFI native boot? i have one local patch for legacy mode booting, and it's similar to what Bjorn suggested. Please check the attached patch. Thanks Yinghai Lu
Subject: [PATCH] x86: allow NVS can be accessed by driver APEI related... Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> --- arch/x86/kernel/e820.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6/arch/x86/kernel/e820.c =================================================================== --- linux-2.6.orig/arch/x86/kernel/e820.c +++ linux-2.6/arch/x86/kernel/e820.c @@ -995,7 +995,8 @@ void __init e820_reserve_resources(void) * pcibios_resource_survey() */ if (e820.map[i].type != E820_RESERVED || res->start < (1ULL<<20)) { - res->flags |= IORESOURCE_BUSY; + if (e820.map[i].type != E820_NVS) + res->flags |= IORESOURCE_BUSY; insert_resource(&iomem_resource, res); } res++;