linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] arm64: avoid early __va translations
@ 2016-02-12 14:57 Ard Biesheuvel
  2016-02-12 14:57 ` [PATCH v3 1/4] of/fdt: factor out assignment of initrd_start/initrd_end Ard Biesheuvel
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Ard Biesheuvel @ 2016-02-12 14:57 UTC (permalink / raw)
  To: linux-arm-kernel

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(-)

-- 
2.5.0

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2016-02-22 18:00 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-02-12 14:57 [PATCH v3 0/4] arm64: avoid early __va translations Ard Biesheuvel
2016-02-12 14:57 ` [PATCH v3 1/4] of/fdt: factor out assignment of initrd_start/initrd_end Ard Biesheuvel
2016-02-22 16:49   ` Will Deacon
2016-02-22 16:56     ` Ard Biesheuvel
2016-02-22 17:09       ` Will Deacon
2016-02-22 17:16         ` Ard Biesheuvel
2016-02-12 14:57 ` [PATCH v3 2/4] arm64: defer __va translation of initrd_start and initrd_end Ard Biesheuvel
2016-02-12 14:57 ` [PATCH v3 3/4] arm64: prevent potential circular header dependencies in asm/bug.h Ard Biesheuvel
2016-02-22 18:00   ` Will Deacon
2016-02-12 14:57 ` [PATCH v3 4/4] arm64: prevent __va() translations before memstart_addr is assigned Ard Biesheuvel
2016-02-22 16:52   ` Will Deacon
2016-02-22 17:17     ` Ard Biesheuvel
2016-02-22 17:41       ` Catalin Marinas
2016-02-22 17:55         ` Ard Biesheuvel
2016-02-22 17:26     ` Catalin Marinas
2016-02-22 17:38       ` Ard Biesheuvel
2016-02-15 10:42 ` [PATCH v3 0/4] arm64: avoid early __va translations Laurentiu Tudor

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).