linux/arch
Kees Cook ba5c5e4a5d arm64: move jump_label_init() before parse_early_param()
While jump_label_init() was moved earlier in the boot process in
efd9e03fac ("arm64: Use static keys for CPU features"), it wasn't early
enough for early params to use it.  The old state of things was as
described here...

init/main.c calls out to arch-specific things before general jump label
and early param handling:

  asmlinkage __visible void __init start_kernel(void)
  {
        ...
        setup_arch(&command_line);
        ...
        smp_prepare_boot_cpu();
        ...
        /* parameters may set static keys */
        jump_label_init();
        parse_early_param();
        ...
  }

x86 setup_arch() wants those earlier, so it handles jump label and
early param:

  void __init setup_arch(char **cmdline_p)
  {
        ...
        jump_label_init();
        ...
        parse_early_param();
        ...
  }

arm64 setup_arch() only had early param:

  void __init setup_arch(char **cmdline_p)
  {
        ...
        parse_early_param();
        ...
}

with jump label later in smp_prepare_boot_cpu():

  void __init smp_prepare_boot_cpu(void)
  {
        ...
        jump_label_init();
        ...
  }

This moves arm64 jump_label_init() from smp_prepare_boot_cpu() to
setup_arch(), as done already on x86, in preparation from early param
usage in the init_on_alloc/free() series:
https://lkml.kernel.org/r/1561572949.5154.81.camel@lca.pw

Link: http://lkml.kernel.org/r/201906271003.005303B52@keescook
Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Qian Cai <cai@lca.pw>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-12 11:05:46 -07:00
..
alpha alpha: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
arc It's been a relatively busy cycle for docs: 2019-07-09 12:34:26 -07:00
arm mm/pgtable: drop pgtable_t variable from pte_fn_t functions 2019-07-12 11:05:46 -07:00
arm64 arm64: move jump_label_init() before parse_early_param() 2019-07-12 11:05:46 -07:00
c6x Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2019-07-10 21:42:03 -07:00
csky csky: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
h8300 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu 2019-07-10 21:42:03 -07:00
hexagon Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2019-07-08 21:48:15 -07:00
ia64 pidfd-updates-v5.3 2019-07-10 22:17:21 -07:00
m68k m68k: sun3: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
microblaze clone3-v5.3 2019-07-11 10:09:44 -07:00
mips mips: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
nds32 nds32: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
nios2 nios2: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
openrisc It's been a relatively busy cycle for docs: 2019-07-09 12:34:26 -07:00
parisc parisc: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
powerpc mm: move the powerpc hugepd code to mm/gup.c 2019-07-12 11:05:45 -07:00
riscv riscv: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
s390 mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP 2019-07-12 11:05:44 -07:00
sh mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP 2019-07-12 11:05:44 -07:00
sparc mm: rename CONFIG_HAVE_GENERIC_GUP to CONFIG_HAVE_FAST_GUP 2019-07-12 11:05:44 -07:00
um um: switch to generic version of pte allocation 2019-07-12 11:05:45 -07:00
unicore32 unicore32: switch to generic version of pte allocation 2019-07-12 11:05:46 -07:00
x86 mm/pgtable: drop pgtable_t variable from pte_fn_t functions 2019-07-12 11:05:46 -07:00
xtensa clone3-v5.3 2019-07-11 10:09:44 -07:00
.gitignore
Kconfig Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-16 11:00:20 -07:00