[PATCH v3 0/4] arm64: avoid early __va translations
Laurentiu Tudor
laurentiu.tudor at nxp.com
Mon Feb 15 02:42:28 PST 2016
Hi Ard,
On 02/12/2016 04:57 PM, Ard Biesheuvel wrote:
> This is a somewhat cleaner approach for dealing with the issue that the
> early FDT performs __va() translations before the linear mapping has been
> set up. Being able to defer the assignment of memstart_addr until after we
> have discovered all of memory is an important piece of functionality, not
> only for KASLR but also for mapping the linear region as efficiently as
> possible.
>
> Changes since v2:
> - replace __weak function in patches #1 and #2 with a preprocessor macro
> - add patch to address the circular header dependency when including
> asm/bug.h in asm/memory.h
> - turned the hack that adds the BUG_ON() into a proper patch
>
> Patch #1 refactors the early FDT code so that the actual assignment of
> initrd_start and initrd_end (which is where the __va() translations are
> performed) can be overridden in architecture specific code.
>
> Patch #2 performs the override, and only records the physical addresses
> as they are found in the /chosen node, or on the command line, and defers
> the __va() translation until after memstart_addr has been assigned.
>
> Patch #3 reshuffles some #includes and #defines so that asm/bug.h can be
> included (and used) in asm/memory.h
>
> Patch #4 implements a BUG_ON() check to ensure that no references to
> memstart_addr are made before it has been assigned.
>
> Ard Biesheuvel (4):
> of/fdt: factor out assignment of initrd_start/initrd_end
> arm64: defer __va translation of initrd_start and initrd_end
> arm64: prevent potential circular header dependencies in asm/bug.h
> arm64: prevent __va() translations before memstart_addr is assigned
>
> arch/arm64/include/asm/bug.h | 2 +-
> arch/arm64/include/asm/debug-monitors.h | 2 +-
> arch/arm64/include/asm/memory.h | 12 ++++++++++-
> arch/arm64/kvm/hyp/debug-sr.c | 1 +
> arch/arm64/mm/init.c | 21 +++++++++++++++-----
> drivers/of/fdt.c | 14 ++++++++++---
> 6 files changed, 41 insertions(+), 11 deletions(-)
Tried these on one of our LS2 boards so here's a:
Tested-by: Laurentiu Tudor <laurentiu.tudor at nxp.com>
---
Best Regards, Laurentiu
More information about the linux-arm-kernel
mailing list