diff --git a/lib/acpi/acpi.c b/lib/acpi/acpi.c
index 939a638..bcafd77 100644
--- a/lib/acpi/acpi.c
+++ b/lib/acpi/acpi.c
@@ -22,13 +22,13 @@
 	if (!rsdp)
 		return NULL;
 	if (rsdp->xsdt_address) {
-		xsdt = map_sysmem(rsdp->xsdt_address, 0);
+		xsdt = nomap_sysmem(rsdp->xsdt_address, 0);
 		len = xsdt->header.length - sizeof(xsdt->header);
 		count = len / sizeof(u64);
 	} else {
 		if (!rsdp->rsdt_address)
 			return NULL;
-		rsdt = map_sysmem(rsdp->rsdt_address, 0);
+		rsdt = nomap_sysmem(rsdp->rsdt_address, 0);
 		len = rsdt->header.length - sizeof(rsdt->header);
 		count = len / sizeof(u32);
 	}
@@ -36,19 +36,19 @@
 		struct acpi_table_header *hdr;
 
 		if (rsdp->xsdt_address)
-			hdr = map_sysmem(xsdt->entry[i], 0);
+			hdr = nomap_sysmem(xsdt->entry[i], 0);
 		else
-			hdr = map_sysmem(rsdt->entry[i], 0);
+			hdr = nomap_sysmem(rsdt->entry[i], 0);
 		if (!memcmp(hdr->signature, sig, ACPI_NAME_LEN))
 			return hdr;
 		if (!memcmp(hdr->signature, "FACP", ACPI_NAME_LEN)) {
 			struct acpi_fadt *fadt = (struct acpi_fadt *)hdr;
 
 			if (!memcmp(sig, "DSDT", ACPI_NAME_LEN) && fadt->dsdt)
-				return map_sysmem(fadt->dsdt, 0);
+				return nomap_sysmem(fadt->dsdt, 0);
 			if (!memcmp(sig, "FACS", ACPI_NAME_LEN) &&
 			    fadt->firmware_ctrl)
-				return map_sysmem(fadt->firmware_ctrl, 0);
+				return nomap_sysmem(fadt->firmware_ctrl, 0);
 		}
 	}
 
