[2/2] arm64: call early_ioremap_reset() in paging_init()

Message ID 1420482835-6444-3-git-send-email-leif.lindholm@linaro.org
State New
Headers show

Commit Message

Leif Lindholm Jan. 5, 2015, 6:33 p.m.
arm64 does not support early_memremap/memunmap/ioremap/iounmap after
paging_init() has been called. The core early_*remap code handles this
via the after_paging_init variable, which is set by a call to
early_ioremap_reset().

However, arm64 currently does not call early_ioremap_reset(), which
has made it possible to poke around in the fixmap region after kmap
is enabled. Add the required call.

Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
---
 arch/arm64/mm/mmu.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ard Biesheuvel Jan. 6, 2015, 9:39 a.m. | #1
On 5 January 2015 at 18:33, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> arm64 does not support early_memremap/memunmap/ioremap/iounmap after
> paging_init() has been called. The core early_*remap code handles this
> via the after_paging_init variable, which is set by a call to
> early_ioremap_reset().
>
> However, arm64 currently does not call early_ioremap_reset(), which
> has made it possible to poke around in the fixmap region after kmap
> is enabled. Add the required call.
>
> Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

Perhaps add 'Fixes' and 'Cc: stable' tags as well?


> ---
>  arch/arm64/mm/mmu.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index 6032f3e..506544f 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -348,6 +348,7 @@ void __init paging_init(void)
>  {
>         void *zero_page;
>
> +       early_ioremap_reset();
>         map_mem();
>
>         /*
> --
> 2.1.3
>

Patch

diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index 6032f3e..506544f 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -348,6 +348,7 @@  void __init paging_init(void)
 {
 	void *zero_page;
 
+	early_ioremap_reset();
 	map_mem();
 
 	/*