Thread (22 messages) 22 messages, 4 authors, 2011-09-05

Re: APEI: Can not request iomem region for GARs

From: Bjorn Helgaas <bhelgaas@google.com>
Date: 2011-08-19 21:49:09
Also in: lkml
Subsystem: acpi, acpi apei, the rest · Maintainers: "Rafael J. Wysocki", Linus Torvalds

On Tue, Aug 16, 2011 at 9:43 PM, Pavel Ivanov [off-list ref] wrote:
Ever since I switched from kernel 2.6.38 to 3.0 and later versions I
always get the following error message on each boot:

[    2.844242] APEI: Can not request iomem region
<00000000bf7b522a-00000000bf7b522c> for GARs.

If it was only in dmesg I wouldn't even notice it. But it's always
printed on the console which is kind of annoying.
I don't quite understand what this message is about and couldn't find
anything on the internet. Does this message mean some error that I
could fix? If no, is there any way I can suppress it (besides lowering
the error level of messages printed on console, of course)?
[+cc Huang Ying, APEI author]

BIOS-e820: 00000000bf79e000 - 00000000bf7d0000 (ACPI NVS)
APEI: Can not request iomem region <00000000bf7b522a-00000000bf7b522c> for GARs.

This register is in the ACPI NVS region, which is type E820_NVS (not
E820_RESERVED), so e820_reserve_resources() reserves it as
IORESOURCE_BUSY.  My guess is that Huang tested this on machines where
the EINJ/ERST registers are in "reserved" regions, not ACPI NVS
regions.  The "reserved" regions are not marked IORESOURCE_BUSY.

Huang, when you fix this, please include something like the following
(mangled) patch so the error message is more consistent with other
resource messages.

Could you also remove the ERST/EINJ/HEST "Table is not found"
messages?  As far as I can tell, these tables are optional, and
printing the message is confusing to users, e.g.,
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/599715

Bjorn
diff --git a/drivers/acpi/apei/apei-base.c b/drivers/acpi/apei/apei-base.c
index 8041248..6f97b59 100644
--- a/drivers/acpi/apei/apei-base.c
+++ b/drivers/acpi/apei/apei-base.c
@@ -460,9 +460,9 @@ int apei_resources_request(struct apei_resources *resources,
                                       desc);
                if (!r) {
                        pr_err(APEI_PFX
-               "Can not request iomem region <%016llx-%016llx> for GARs.\n",
+               "can not request [mem %#010llx-%#010llx] for %s registers\n",
                               (unsigned long long)res->start,
-                              (unsigned long long)res->end);
+                              (unsigned long long)res->end, desc);
                        res_bak = res;
                        goto err_unmap_iomem;
                }
@@ -472,9 +472,9 @@ int apei_resources_request(struct apei_resources *resources,
                r = request_region(res->start, res->end - res->start, desc);
                if (!r) {
                        pr_err(APEI_PFX
-               "Can not request ioport region <%016llx-%016llx> for GARs.\n",
+               "can not request [io  %#06llx-%#06llx] for %s registers\n",
                               (unsigned long long)res->start,
-                              (unsigned long long)res->end);
+                              (unsigned long long)res->end, desc);
                        res_bak = res;
                        goto err_unmap_ioport;
                }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help