• Linus Torvalds's avatar
    Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0238d3c7
    Linus Torvalds authored
    Pull arm64 updates from Will Deacon:
     "The changes are a real mixed bag this time around.
    
      The only scary looking one from the diffstat is the uapi change to
      asm-generic/mman-common.h, but this has been acked by Arnd and is
      actually just adding a pair of comments in an attempt to prevent
      allocation of some PROT values which tend to get used for
      arch-specific purposes. We'll be using them for Branch Target
      Identification (a CFI-like hardening feature), which is currently
      under review on the mailing list.
    
      New architecture features:
    
       - Support for Armv8.5 E0PD, which benefits KASLR in the same way as
         KPTI but without the overhead. This allows KPTI to be disabled on
         CPUs that are not affected by Meltdown, even is KASLR is enabled.
    
       - Initial support for the Armv8.5 RNG instructions, which claim to
         provide access to a high bandwidth, cryptographically secure
         hardware random number generator. As well as exposing these to
         userspace, we also use them as part of the KASLR seed and to seed
         the crng once all CPUs have come online.
    
       - Advertise a bunch of new instructions to userspace, including
         support for Data Gathering Hint, Matrix Multiply and 16-bit
         floating point.
    
      Kexec:
    
       - Cleanups in preparation for relocating with the MMU enabled
    
       - Support for loading crash dump kernels with kexec_file_load()
    
      Perf and PMU drivers:
    
       - Cleanups and non-critical fixes for a couple of system PMU drivers
    
      FPU-less (aka broken) CPU support:
    
       - Considerable fixes to support CPUs without the FP/SIMD extensions,
         including their presence in heterogeneous systems. Good luck
         finding a 64-bit userspace that handles this.
    
      Modern assembly function annotations:
    
       - Start migrating our use of ENTRY() and ENDPROC() over to the
         new-fangled SYM_{CODE,FUNC}_{START,END} macros, which are intended
         to aid debuggers
    
      Kbuild:
    
       - Cleanup detection of LSE support in the assembler by introducing
         'as-instr'
    
       - Remove compressed Image files when building clean targets
    
      IP checksumming:
    
       - Implement optimised IPv4 checksumming routine when hardware offload
         is not in use. An IPv6 version is in the works, pending testing.
    
      Hardware errata:
    
       - Work around Cortex-A55 erratum #1530923
    
      Shadow call stack:
    
       - Work around some issues with Clang's integrated assembler not
         liking our perfectly reasonable assembly code
    
       - Avoid allocating the X18 register, so that it can be used to hold
         the shadow call stack pointer in future
    
      ACPI:
    
       - Fix ID count checking in IORT code. This may regress broken
         firmware that happened to work with the old implementation, in
         which case we'll have to revert it and try something else
    
       - Fix DAIF corruption on return from GHES handler with pseudo-NMIs
    
      Miscellaneous:
    
       - Whitelist some CPUs that are unaffected by Spectre-v2
    
       - Reduce frequency of ASID rollover when KPTI is compiled in but
         inactive
    
       - Reserve a couple of arch-specific PROT flags that are already used
         by Sparc and PowerPC and are planned for later use with BTI on
         arm64
    
       - Preparatory cleanup of our entry assembly code in preparation for
         moving more of it into C later on
    
       - Refactoring and cleanup"
    
    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (73 commits)
      arm64: acpi: fix DAIF manipulation with pNMI
      arm64: kconfig: Fix alignment of E0PD help text
      arm64: Use v8.5-RNG entropy for KASLR seed
      arm64: Implement archrandom.h for ARMv8.5-RNG
      arm64: kbuild: remove compressed images on 'make ARCH=arm64 (dist)clean'
      arm64: entry: Avoid empty alternatives entries
      arm64: Kconfig: select HAVE_FUTEX_CMPXCHG
      arm64: csum: Fix pathological zero-length calls
      arm64: entry: cleanup sp_el0 manipulation
      arm64: entry: cleanup el0 svc handler naming
      arm64: entry: mark all entry code as notrace
      arm64: assembler: remove smp_dmb macro
      arm64: assembler: remove inherit_daif macro
      ACPI/IORT: Fix 'Number of IDs' handling in iort_id_map()
      mm: Reserve asm-generic prot flags 0x10 and 0x20 for arch use
      arm64: Use macros instead of hard-coded constants for MAIR_EL1
      arm64: Add KRYO{3,4}XX CPU cores to spectre-v2 safe list
      arm64: kernel: avoid x18 in __cpu_soft_restart
      arm64: kvm: stop treating register x18 as caller save
      arm64/lib: copy_page: avoid x18 register in assembler code
      ...
    0238d3c7
process.c 15.6 KB