* [PATCH v2 0/2] efi/arm*: wire up ESRT table @ 2016-07-11 19:00 Ard Biesheuvel 2016-07-11 19:00 ` [PATCH v2 1/2] efi: esrt: use memremap not ioremap to access ESRT table in memory Ard Biesheuvel 2016-07-11 19:00 ` [PATCH v2 2/2] efi/arm*: esrt: add missing call to efi_esrt_init() Ard Biesheuvel 0 siblings, 2 replies; 5+ messages in thread From: Ard Biesheuvel @ 2016-07-11 19:00 UTC (permalink / raw) To: linux-arm-kernel This v2 is a followup to the series I sent out on Feb 15. These now apply onto Matt's memmap refactoring work which is intended for inclusion in v4.9, and the diffstat below reveals that enabling ESRT is now absolutely trivial. The only things needed are replacing ioremap() with memremap(), and adding the missing efi_esrt_init() invocation. I dropped the Tested-by tags, simply because the underlying code is completely different now. I kept Peter's ack on #1, though. Ard Biesheuvel (2): efi: esrt: use memremap not ioremap to access ESRT table in memory efi/arm*: esrt: add missing call to efi_esrt_init() drivers/firmware/efi/arm-init.c | 1 + drivers/firmware/efi/esrt.c | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) -- 1.9.1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] efi: esrt: use memremap not ioremap to access ESRT table in memory 2016-07-11 19:00 [PATCH v2 0/2] efi/arm*: wire up ESRT table Ard Biesheuvel @ 2016-07-11 19:00 ` Ard Biesheuvel 2016-07-15 15:05 ` Matt Fleming 2016-07-11 19:00 ` [PATCH v2 2/2] efi/arm*: esrt: add missing call to efi_esrt_init() Ard Biesheuvel 1 sibling, 1 reply; 5+ messages in thread From: Ard Biesheuvel @ 2016-07-11 19:00 UTC (permalink / raw) To: linux-arm-kernel 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> --- drivers/firmware/efi/esrt.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/firmware/efi/esrt.c b/drivers/firmware/efi/esrt.c index b93cd11f9bcc..14914074f716 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; } -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 1/2] efi: esrt: use memremap not ioremap to access ESRT table in memory 2016-07-11 19:00 ` [PATCH v2 1/2] efi: esrt: use memremap not ioremap to access ESRT table in memory Ard Biesheuvel @ 2016-07-15 15:05 ` Matt Fleming 0 siblings, 0 replies; 5+ messages in thread From: Matt Fleming @ 2016-07-15 15:05 UTC (permalink / raw) To: linux-arm-kernel On Mon, 11 Jul, at 09:00:45PM, Ard Biesheuvel wrote: > 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> > --- > drivers/firmware/efi/esrt.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Looks sensible, thanks Ard, applied. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] efi/arm*: esrt: add missing call to efi_esrt_init() 2016-07-11 19:00 [PATCH v2 0/2] efi/arm*: wire up ESRT table Ard Biesheuvel 2016-07-11 19:00 ` [PATCH v2 1/2] efi: esrt: use memremap not ioremap to access ESRT table in memory Ard Biesheuvel @ 2016-07-11 19:00 ` Ard Biesheuvel 2016-07-15 15:22 ` Matt Fleming 1 sibling, 1 reply; 5+ messages in thread From: Ard Biesheuvel @ 2016-07-11 19:00 UTC (permalink / raw) To: linux-arm-kernel ESRT support is built by default for all architectures that define CONFIG_EFI. However, this support was not wired up yet for ARM/arm64, since efi_esrt_init() was never called. So add the missing call. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- drivers/firmware/efi/arm-init.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/firmware/efi/arm-init.c b/drivers/firmware/efi/arm-init.c index 5a2df3fefccc..e0a511d4074f 100644 --- a/drivers/firmware/efi/arm-init.c +++ b/drivers/firmware/efi/arm-init.c @@ -247,6 +247,7 @@ void __init efi_init(void) reserve_regions(); efi_memattr_init(); + efi_esrt_init(); efi_memmap_unmap(); memblock_reserve(params.mmap & PAGE_MASK, -- 1.9.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] efi/arm*: esrt: add missing call to efi_esrt_init() 2016-07-11 19:00 ` [PATCH v2 2/2] efi/arm*: esrt: add missing call to efi_esrt_init() Ard Biesheuvel @ 2016-07-15 15:22 ` Matt Fleming 0 siblings, 0 replies; 5+ messages in thread From: Matt Fleming @ 2016-07-15 15:22 UTC (permalink / raw) To: linux-arm-kernel On Mon, 11 Jul, at 09:00:46PM, Ard Biesheuvel wrote: > ESRT support is built by default for all architectures that define > CONFIG_EFI. However, this support was not wired up yet for ARM/arm64, > since efi_esrt_init() was never called. So add the missing call. > > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > drivers/firmware/efi/arm-init.c | 1 + > 1 file changed, 1 insertion(+) Thanks Ard, applied and queued up for v4.9 on top of the EFI memmap refactoring. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-07-15 15:22 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-07-11 19:00 [PATCH v2 0/2] efi/arm*: wire up ESRT table Ard Biesheuvel 2016-07-11 19:00 ` [PATCH v2 1/2] efi: esrt: use memremap not ioremap to access ESRT table in memory Ard Biesheuvel 2016-07-15 15:05 ` Matt Fleming 2016-07-11 19:00 ` [PATCH v2 2/2] efi/arm*: esrt: add missing call to efi_esrt_init() Ard Biesheuvel 2016-07-15 15:22 ` Matt Fleming
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).