[PATCH 1/4] ARM: idmap: populate identity map pgd at init time using .init.text

Catalin Marinas catalin.marinas at arm.com
Fri Nov 18 07:02:03 EST 2011


On 16 November 2011 16:48, Will Deacon <will.deacon at arm.com> wrote:
> When disabling and re-enabling the MMU, it is necessary to take out an
> identity mapping for the code that manipulates the SCTLR in order to
> avoid it disappearing from under our feet. This is useful when soft
> rebooting and returning from CPU suspend.
>
> This patch allocates a set of page tables during boot and populates them
> with an identity mapping for the .idmap.text section. This means that
> users of the identity map do not need to manage their own pgd and can
> instead annotate their functions with __idmap or, in the case of assembly
> code, place them in the correct section.
>
> Tested-by: Lorenzo Pieralisi <Lorenzo.Pieralisi at arm.com>
> Signed-off-by: Will Deacon <will.deacon at arm.com>
...
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -425,6 +425,12 @@
>                *(.kprobes.text)                                        \
>                VMLINUX_SYMBOL(__kprobes_text_end) = .;
>
> +#define IDMAP_TEXT                                                     \
> +               ALIGN_FUNCTION();                                       \
> +               VMLINUX_SYMBOL(__idmap_text_start) = .;                 \
> +               *(.idmap.text)                                          \
> +               VMLINUX_SYMBOL(__idmap_text_end) = .;
> +
>  #define ENTRY_TEXT                                                     \
>                ALIGN_FUNCTION();                                       \
>                VMLINUX_SYMBOL(__entry_text_start) = .;                 \

Since IDMAP is specific to ARM, we should just add the IDMAP_TEXT
macro to vmlinux.lds.S.

-- 
Catalin



More information about the linux-arm-kernel mailing list