summaryrefslogtreecommitdiffstats
path: root/drivers/firmware/efi
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-07-11 21:00:45 +0200
committerMatt Fleming <matt@codeblueprint.co.uk>2016-09-09 16:08:39 +0100
commitf58a37b2e01f91c23af457a7662f6b5a1e9f41e0 (patch)
tree9e18f52974bd02b60809093035d0599f0dd1011c /drivers/firmware/efi
parent4bc9f92e64c81192dcca1c495354bcc7c3b43e7d (diff)
downloadop-kernel-dev-f58a37b2e01f91c23af457a7662f6b5a1e9f41e0.zip
op-kernel-dev-f58a37b2e01f91c23af457a7662f6b5a1e9f41e0.tar.gz
efi/esrt: Use memremap not ioremap to access ESRT table in memory
On ARM and arm64, ioremap() and memremap() are not interchangeable like on x86, and the use of ioremap() on ordinary RAM is typically flagged as an error if the memory region being mapped is also covered by the linear mapping, since that would lead to aliases with conflicting cacheability attributes. Since what we are dealing with is not an I/O region with side effects, using ioremap() here is arguably incorrect anyway, so let's replace it with memremap() instead. Acked-by: Peter Jones <pjones@redhat.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Diffstat (limited to 'drivers/firmware/efi')
-rw-r--r--drivers/firmware/efi/esrt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c
index b93cd11..1491407 100644
--- a/drivers/firmware/efi/esrt.c
+++ b/drivers/firmware/efi/esrt.c
@@ -16,6 +16,7 @@
#include <linux/device.h>
#include <linux/efi.h>
#include <linux/init.h>
+#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/kobject.h>
#include <linux/list.h>
@@ -387,9 +388,9 @@ static int __init esrt_sysfs_init(void)
if (!esrt_data || !esrt_data_size)
return -ENOSYS;
- esrt = ioremap(esrt_data, esrt_data_size);
+ esrt = memremap(esrt_data, esrt_data_size, MEMREMAP_WB);
if (!esrt) {
- pr_err("ioremap(%pa, %zu) failed.\n", &esrt_data,
+ pr_err("memremap(%pa, %zu) failed.\n", &esrt_data,
esrt_data_size);
return -ENOMEM;
}
OpenPOWER on IntegriCloud