1. 24 Jun, 2021 10 commits
    • Will Deacon's avatar
      Merge branch 'for-next/insn' into for-next/core · 181a1269
      Will Deacon authored
      Refactoring of our instruction decoding routines and addition of some
      missing encodings.
      
      * for-next/insn:
        arm64: insn: avoid circular include dependency
        arm64: insn: move AARCH64_INSN_SIZE into <asm/insn.h>
        arm64: insn: decouple patching from insn code
        arm64: insn: Add load/store decoding helpers
        arm64: insn: Add some opcodes to instruction decoder
        arm64: insn: Add barrier encodings
        arm64: insn: Add SVE instruction class
        arm64: Move instruction encoder/decoder under lib/
        arm64: Move aarch32 condition check functions
        arm64: Move patching utilities out of instruction encoding/decoding
      181a1269
    • Will Deacon's avatar
      Merge branch 'for-next/entry' into for-next/core · 6cf61e06
      Will Deacon authored
      The never-ending entry.S refactoring continues, putting us in a much
      better place wrt compiler instrumentation whilst moving more of the code
      into C.
      
      * for-next/entry:
        arm64: idle: don't instrument idle code with KCOV
        arm64: entry: don't instrument entry code with KCOV
        arm64: entry: make NMI entry/exit functions static
        arm64: entry: split SDEI entry
        arm64: entry: split bad stack entry
        arm64: entry: fold el1_inv() into el1h_64_sync_handler()
        arm64: entry: handle all vectors with C
        arm64: entry: template the entry asm functions
        arm64: entry: improve bad_mode()
        arm64: entry: move bad_mode() to entry-common.c
        arm64: entry: consolidate EL1 exception returns
        arm64: entry: organise entry vectors consistently
        arm64: entry: organise entry handlers consistently
        arm64: entry: convert IRQ+FIQ handlers to C
        arm64: entry: add a call_on_irq_stack helper
        arm64: entry: move NMI preempt logic to C
        arm64: entry: move arm64_preempt_schedule_irq to entry-common.c
        arm64: entry: convert SError handlers to C
        arm64: entry: unmask IRQ+FIQ after EL0 handling
        arm64: remove redundant local_daif_mask() in bad_mode()
      6cf61e06
    • Will Deacon's avatar
      Merge branch 'for-next/docs' into for-next/core · aeb3e82e
      Will Deacon authored
      Update booting requirements for the FEAT_HCX feature, added to v8.7 of
      the architecture.
      
      * for-next/docs:
        arm64: Document requirement for access to FEAT_HCX
      aeb3e82e
    • Will Deacon's avatar
      Merge branch 'for-next/cpuidle' into for-next/core · eea3e2de
      Will Deacon authored
      Fix resume from idle when pNMI is being used.
      
      * for-next/cpuidle:
        arm64: suspend: Use cpuidle context helpers in cpu_suspend()
        PSCI: Use cpuidle context helpers in psci_cpu_suspend_enter()
        arm64: Convert cpu_do_idle() to using cpuidle context helpers
        arm64: Add cpuidle context save/restore helpers
      eea3e2de
    • Will Deacon's avatar
      Merge branch 'for-next/cpufeature' into for-next/core · eda2171d
      Will Deacon authored
      Additional CPU sanity checks for MTE and preparatory changes for systems
      where not all of the CPUs support 32-bit EL0.
      
      * for-next/cpufeature:
        arm64: Restrict undef hook for cpufeature registers
        arm64: Kill 32-bit applications scheduled on 64-bit-only CPUs
        KVM: arm64: Kill 32-bit vCPUs on systems with mismatched EL0 support
        arm64: Allow mismatched 32-bit EL0 support
        arm64: cpuinfo: Split AArch32 registers out into a separate struct
        arm64: Check if GMID_EL1.BS is the same on all CPUs
        arm64: Change the cpuinfo_arm64 member type for some sysregs to u64
      eda2171d
    • Will Deacon's avatar
      Merge branch 'for-next/cortex-strings' into for-next/core · 5ceb0455
      Will Deacon authored
      Update our kernel string routines to the latest Cortex Strings
      implementation.
      
      * for-next/cortex-strings:
        arm64: update string routine copyrights and URLs
        arm64: Rewrite __arch_clear_user()
        arm64: Better optimised memchr()
        arm64: Import latest memcpy()/memmove() implementation
        arm64: Add assembly annotations for weak-PI-alias madness
        arm64: Import latest version of Cortex Strings' strncmp
        arm64: Import updated version of Cortex Strings' strlen
        arm64: Import latest version of Cortex Strings' strcmp
        arm64: Import latest version of Cortex Strings' memcmp
      5ceb0455
    • Will Deacon's avatar
      Merge branch 'for-next/caches' into for-next/core · 25377204
      Will Deacon authored
      Big cleanup of our cache maintenance routines, which were confusingly
      named and inconsistent in their implementations.
      
      * for-next/caches:
        arm64: Rename arm64-internal cache maintenance functions
        arm64: Fix cache maintenance function comments
        arm64: sync_icache_aliases to take end parameter instead of size
        arm64: __clean_dcache_area_pou to take end parameter instead of size
        arm64: __clean_dcache_area_pop to take end parameter instead of size
        arm64: __clean_dcache_area_poc to take end parameter instead of size
        arm64: __flush_dcache_area to take end parameter instead of size
        arm64: dcache_by_line_op to take end parameter instead of size
        arm64: __inval_dcache_area to take end parameter instead of size
        arm64: Fix comments to refer to correct function __flush_icache_range
        arm64: Move documentation of dcache_by_line_op
        arm64: assembler: remove user_alt
        arm64: Downgrade flush_icache_range to invalidate
        arm64: Do not enable uaccess for invalidate_icache_range
        arm64: Do not enable uaccess for flush_icache_range
        arm64: Apply errata to swsusp_arch_suspend_exit
        arm64: assembler: add conditional cache fixups
        arm64: assembler: replace `kaddr` with `addr`
      25377204
    • Will Deacon's avatar
      Merge branch 'for-next/build' into for-next/core · 216fe62d
      Will Deacon authored
      Tweak linker flags so that GDB can understand vmlinux when using RELR
      relocations.
      
      * for-next/build:
        Makefile: fix GDB warning with CONFIG_RELR
      216fe62d
    • Will Deacon's avatar
      Merge branch 'for-next/boot' into for-next/core · e7cf636c
      Will Deacon authored
      Boot path cleanups to enable early initialisation of per-cpu operations
      needed by KCSAN.
      
      * for-next/boot:
        arm64: scs: Drop unused 'tmp' argument to scs_{load, save} asm macros
        arm64: smp: initialize cpu offset earlier
        arm64: smp: unify task and sp setup
        arm64: smp: remove stack from secondary_data
        arm64: smp: remove pointless secondary_data maintenance
        arm64: assembler: add set_this_cpu_offset
      e7cf636c
    • Will Deacon's avatar
      Merge branch 'for-next/stacktrace' into for-next/core · 0b573a02
      Will Deacon authored
      Relax frame record alignment requirements to facilitate 8-byte alignment
      with KASAN and Clang.
      
      * for-next/stacktrace:
        arm64: stacktrace: Relax frame record alignment requirement to 8 bytes
        arm64: Change the on_*stack functions to take a size argument
        arm64: Implement stack trace termination record
      0b573a02
  2. 22 Jun, 2021 1 commit
  3. 21 Jun, 2021 1 commit
    • Mark Rutland's avatar
      arm64: insn: avoid circular include dependency · 69bb0585
      Mark Rutland authored
      Nathan reports that when building with CONFIG_LTO_CLANG_THIN=y, the
      build fails due to BUILD_BUG_ON() not being defined before its uss in
      <asm/insn.h>.
      
      The problem is that with LTO, we patch READ_ONCE(), and <asm/rwonce.h>
      includes <asm/insn.h>, creating a circular include chain:
      
              <linux/build_bug.h>
              <linux/compiler.h>
              <asm/rwonce.h>
              <asm/alternative-macros.h>
              <asm/insn.h>
              <linux/build-bug.h>
      
      ... and so when <asm/insn.h> includes <linux/build_bug.h>, none of the
      BUILD_BUG* definitions have happened yet.
      
      To avoid this, let's move AARCH64_INSN_SIZE into a header without any
      dependencies, such that it can always be safely included. At the same
      time, avoid including <asm/alternative.h> in <asm/insn.h>, which should
      no longer be necessary (and doesn't make sense when insn.h is consumed
      by userspace).
      Reported-by: default avatarNathan Chancellor <nathan@kernel.org>
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210621080830.GA37068@C02TD0UTHF1T.local
      Fixes: 3e00e39d ("arm64: insn: move AARCH64_INSN_SIZE into <asm/insn.h>")
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      69bb0585
  4. 17 Jun, 2021 4 commits
  5. 11 Jun, 2021 6 commits
  6. 08 Jun, 2021 1 commit
  7. 07 Jun, 2021 17 commits