1. 14 Aug, 2019 2 commits
    • Kees Cook's avatar
      arm64/efi: Move variable assignments after SECTIONS · 90776dd1
      Kees Cook authored
      It seems that LLVM's linker does not correctly handle variable assignments
      involving section positions that are updated during the SECTIONS
      parsing. Commit aa69fb62 ("arm64/efi: Mark __efistub_stext_offset as
      an absolute symbol explicitly") ran into this too, but found a different
      workaround.
      
      However, this was not enough, as other variables were also miscalculated
      which manifested as boot failures under UEFI where __efistub__end was
      not taking the correct _end value (they should be the same):
      
      $ ld.lld -EL -maarch64elf --no-undefined -X -shared \
      	-Bsymbolic -z notext -z norelro --no-apply-dynamic-relocs \
      	-o vmlinux.lld -T poc.lds --whole-archive vmlinux.o && \
        readelf -Ws vmlinux.lld | egrep '\b(__efistub_|)_end\b'
      368272: ffff000002218000     0 NOTYPE  LOCAL  HIDDEN    38 __efistub__end
      368322: ffff000012318000     0 NOTYPE  GLOBAL DEFAULT   38 _end
      
      $ aarch64-linux-gnu-ld.bfd -EL -maarch64elf --no-undefined -X -shared \
      	-Bsymbolic -z notext -z norelro --no-apply-dynamic-relocs \
      	-o vmlinux.bfd -T poc.lds --whole-archive vmlinux.o && \
        readelf -Ws vmlinux.bfd | egrep '\b(__efistub_|)_end\b'
      338124: ffff000012318000     0 NOTYPE  LOCAL  DEFAULT  ABS __efistub__end
      383812: ffff000012318000     0 NOTYPE  GLOBAL DEFAULT 15325 _end
      
      To work around this, all of the __efistub_-prefixed variable assignments
      need to be moved after the linker script's SECTIONS entry. As it turns
      out, this also solves the problem fixed in commit aa69fb62, so those
      changes are reverted here.
      
      Link: https://github.com/ClangBuiltLinux/linux/issues/634
      Link: https://bugs.llvm.org/show_bug.cgi?id=42990Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      90776dd1
    • Mark Brown's avatar
      arm64: Clarify when cpu_enable() is called · 38d16667
      Mark Brown authored
      Strengthen the wording in the documentation for cpu_enable() to make it
      more obvious to readers not already familiar with the code when the core
      will call this callback and that this is intentional.
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Reviewed-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
      [will: minor tweak to emphasis in the comment]
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      38d16667
  2. 13 Aug, 2019 4 commits
  3. 07 Aug, 2019 4 commits
    • Julien Grall's avatar
      arm64/ptrace: Fix typoes in sve_set() comment · 08f103b9
      Julien Grall authored
      The ptrace trace SVE flags are prefixed with SVE_PT_*. Update the
      comment accordingly.
      Reviewed-by: default avatarDave Martin <Dave.Martin@arm.com>
      Signed-off-by: default avatarJulien Grall <julien.grall@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      08f103b9
    • Miles Chen's avatar
      arm64: mm: print hexadecimal EC value in mem_abort_decode() · 2951d5ef
      Miles Chen authored
      This change prints the hexadecimal EC value in mem_abort_decode(),
      which makes it easier to lookup the corresponding EC in
      the ARM Architecture Reference Manual.
      
      The commit 1f9b8936 ("arm64: Decode information from ESR upon mem
      faults") prints useful information when memory abort occurs. It would
      be easier to lookup "0x25" instead of "DABT" in the document. Then we
      can check the corresponding ISS.
      
      For example:
      Current	info	  	Document
      		  	EC	Exception class
      "CP15 MCR/MRC"		0x3	"MCR or MRC access to CP15a..."
      "ASIMD"			0x7	"Access to SIMD or floating-point..."
      "DABT (current EL)" 	0x25	"Data Abort taken without..."
      ...
      
      Before:
      Unable to handle kernel paging request at virtual address 000000000000c000
      Mem abort info:
        ESR = 0x96000046
        Exception class = DABT (current EL), IL = 32 bits
        SET = 0, FnV = 0
        EA = 0, S1PTW = 0
      Data abort info:
        ISV = 0, ISS = 0x00000046
        CM = 0, WnR = 1
      
      After:
      Unable to handle kernel paging request at virtual address 000000000000c000
      Mem abort info:
        ESR = 0x96000046
        EC = 0x25: DABT (current EL), IL = 32 bits
        SET = 0, FnV = 0
        EA = 0, S1PTW = 0
      Data abort info:
        ISV = 0, ISS = 0x00000046
        CM = 0, WnR = 1
      
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Acked-by: default avatarMark Rutland <Mark.rutland@arm.com>
      Signed-off-by: default avatarMiles Chen <miles.chen@mediatek.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      2951d5ef
    • Qian Cai's avatar
      arm64/prefetch: fix a -Wtype-limits warning · b99286b0
      Qian Cai authored
      The commit d5370f75 ("arm64: prefetch: add alternative pattern for
      CPUs without a prefetcher") introduced MIDR_IS_CPU_MODEL_RANGE() to be
      used in has_no_hw_prefetch() with rv_min=0 which generates a compilation
      warning from GCC,
      
      In file included from ./arch/arm64/include/asm/cache.h:8,
                     from ./include/linux/cache.h:6,
                     from ./include/linux/printk.h:9,
                     from ./include/linux/kernel.h:15,
                     from ./include/linux/cpumask.h:10,
                     from arch/arm64/kernel/cpufeature.c:11:
      arch/arm64/kernel/cpufeature.c: In function 'has_no_hw_prefetch':
      ./arch/arm64/include/asm/cputype.h:59:26: warning: comparison of
      unsigned expression >= 0 is always true [-Wtype-limits]
      _model == (model) && rv >= (rv_min) && rv <= (rv_max);  \
                              ^~
      arch/arm64/kernel/cpufeature.c:889:9: note: in expansion of macro
      'MIDR_IS_CPU_MODEL_RANGE'
      return MIDR_IS_CPU_MODEL_RANGE(midr, MIDR_THUNDERX,
             ^~~~~~~~~~~~~~~~~~~~~~~
      
      Fix it by converting MIDR_IS_CPU_MODEL_RANGE to a static inline
      function.
      Signed-off-by: default avatarQian Cai <cai@lca.pw>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      b99286b0
    • Will Deacon's avatar
      init/Kconfig: Fix infinite Kconfig recursion on PPC · 71c67a31
      Will Deacon authored
      Commit 5cf896fb ("arm64: Add support for relocating the kernel with
      RELR relocations") introduced CONFIG_TOOLS_SUPPORT_RELR, which checks
      for RELR support in the toolchain as part of the kernel configuration.
      During this procedure, "$(NM)" is invoked to see if it supports the new
      relocation format, however PowerPC conditionally overrides this variable
      in the architecture Makefile in order to pass '--synthetic' when
      targetting PPC64.
      
      This conditional override causes Kconfig to recurse forever, since
      CONFIG_TOOLS_SUPPORT_RELR cannot be determined without $(NM) being
      defined, but that in turn depends on CONFIG_PPC64:
      
        $ make ARCH=powerpc CROSS_COMPILE=powerpc-linux-gnu-
        scripts/kconfig/conf  --syncconfig Kconfig
        scripts/kconfig/conf  --syncconfig Kconfig
        scripts/kconfig/conf  --syncconfig Kconfig
        [...]
      
      In this particular case, it looks like PowerPC may be able to pass
      '--synthetic' unconditionally to nm or even drop it altogether. While
      that is being resolved, let's just bodge the RELR check by picking up
      $(NM) directly from the environment in whatever state it happens to be
      in.
      
      Cc: Peter Collingbourne <pcc@google.com>
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Suggested-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      71c67a31
  4. 05 Aug, 2019 14 commits
    • Peter Collingbourne's avatar
      arm64: Add support for relocating the kernel with RELR relocations · 5cf896fb
      Peter Collingbourne authored
      RELR is a relocation packing format for relative relocations.
      The format is described in a generic-abi proposal:
      https://groups.google.com/d/topic/generic-abi/bX460iggiKg/discussion
      
      The LLD linker can be instructed to pack relocations in the RELR
      format by passing the flag --pack-dyn-relocs=relr.
      
      This patch adds a new config option, CONFIG_RELR. Enabling this option
      instructs the linker to pack vmlinux's relative relocations in the RELR
      format, and causes the kernel to apply the relocations at startup along
      with the RELA relocations. RELA relocations still need to be applied
      because the linker will emit RELA relative relocations if they are
      unrepresentable in the RELR format (i.e. address not a multiple of 2).
      
      Enabling CONFIG_RELR reduces the size of a defconfig kernel image
      with CONFIG_RANDOMIZE_BASE by 3.5MB/16% uncompressed, or 550KB/5%
      compressed (lz4).
      Signed-off-by: default avatarPeter Collingbourne <pcc@google.com>
      Tested-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      5cf896fb
    • Geert Uytterhoeven's avatar
      arm64: Move TIF_* documentation to individual definitions · 66cbdf5d
      Geert Uytterhoeven authored
      Some TIF_* flags are documented in the comment block at the top, some
      next to their definitions, some in both places.
      
      Move all documentation to the individual definitions for consistency,
      and for easy lookup.
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      66cbdf5d
    • Junhua Huang's avatar
      arm64: mm: free the initrd reserved memblock in a aligned manner · 13776f9d
      Junhua Huang authored
      We should free the initrd reserved memblock in an aligned manner,
      because the initrd reserves the memblock in an aligned manner
      in arm64_memblock_init().
      Otherwise there are some fragments in memblock_reserved regions
      after free_initrd_mem(). e.g.:
      /sys/kernel/debug/memblock # cat reserved
         0: 0x0000000080080000..0x00000000817fafff
         1: 0x0000000083400000..0x0000000083ffffff
         2: 0x0000000090000000..0x000000009000407f
         3: 0x00000000b0000000..0x00000000b000003f
         4: 0x00000000b26184ea..0x00000000b2618fff
      The fragments like the ranges from b0000000 to b000003f and
      from b26184ea to b2618fff should be freed.
      
      And we can do free_reserved_area() after memblock_free(),
      as free_reserved_area() calls __free_pages(), once we've done
      that it could be allocated somewhere else,
      but memblock and iomem still say this is reserved memory.
      
      Fixes: 05c58752 ("arm64: To remove initrd reserved area entry from memblock")
      Signed-off-by: default avatarJunhua Huang <huang.junhua@zte.com.cn>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      13776f9d
    • Will Deacon's avatar
      arm64: io: Relax implicit barriers in default I/O accessors · 22ec7161
      Will Deacon authored
      The arm64 implementation of the default I/O accessors requires barrier
      instructions to satisfy the memory ordering requirements documented in
      memory-barriers.txt [1], which are largely derived from the behaviour of
      I/O accesses on x86.
      
      Of particular interest are the requirements that a write to a device
      must be ordered against prior writes to memory, and a read from a device
      must be ordered against subsequent reads from memory. We satisfy these
      requirements using various flavours of DSB: the most expensive barrier
      we have, since it implies completion of prior accesses. This was deemed
      necessary when we first implemented the accessors, since accesses to
      different endpoints could propagate independently and therefore the only
      way to enforce order is to rely on completion guarantees [2].
      
      Since then, the Armv8 memory model has been retrospectively strengthened
      to require "other-multi-copy atomicity", a property that requires memory
      accesses from an observer to become visible to all other observers
      simultaneously [3]. In other words, propagation of accesses is limited
      to transitioning from locally observed to globally observed. It recently
      became apparent that this change also has a subtle impact on our I/O
      accessors for shared peripherals, allowing us to use the cheaper DMB
      instruction instead.
      
      As a concrete example, consider the following:
      
      	memcpy(dma_buffer, data, bufsz);
      	writel(DMA_START, dev->ctrl_reg);
      
      A DMB ST instruction between the final write to the DMA buffer and the
      write to the control register will ensure that the writes to the DMA
      buffer are observed before the write to the control register by all
      observers. Put another way, if an observer can see the write to the
      control register, it can also see the writes to memory. This has always
      been the case and is not sufficient to provide the ordering required by
      Linux, since there is no guarantee that the master interface of the
      DMA-capable device has observed either of the accesses. However, in an
      other-multi-copy atomic world, we can infer two things:
      
        1. A write arriving at an endpoint shared between multiple CPUs is
           visible to all CPUs
      
        2. A write that is visible to all CPUs is also visible to all other
           observers in the shareability domain
      
      Pieced together, this allows us to use DMB OSHST for our default I/O
      write accessors and DMB OSHLD for our default I/O read accessors (the
      outer-shareability is for handling non-cacheable mappings) for shared
      devices. Memory-mapped, DMA-capable peripherals that are private to a
      CPU (i.e. inaccessible to other CPUs) still require the DSB, however
      these are few and far between and typically require special treatment
      anyway which is outside of the scope of the portable driver API (e.g.
      GIC, page-table walker, SPE profiler).
      
      Note that our mandatory barriers remain as DSBs, since there are cases
      where they are used to flush the store buffer of the CPU, e.g. when
      publishing page table updates to the SMMU.
      
      [1] https://git.kernel.org/linus/4614bbdee357
      [2] https://www.youtube.com/watch?v=i6DayghhA8Q
      [3] https://www.cl.cam.ac.uk/~pes20/armv8-mca/Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      22ec7161
    • Mark Brown's avatar
      arm64: Remove unused cpucap_multi_entry_cap_cpu_enable() · 2f8f180b
      Mark Brown authored
      The function cpucap_multi_entry_cap_cpu_enable() is unused, remove it to
      avoid any confusion reading the code and potential for bit rot.
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      2f8f180b
    • Will Deacon's avatar
      arm64: sysreg: Remove unused and rotting SCTLR_ELx field definitions · 73961dc1
      Will Deacon authored
      Our SCTLR_ELx field definitions are somewhat over-engineered in that
      they carefully define masks describing the RES0/RES1 bits and then use
      these to construct further masks representing bits to be set/cleared for
      the _EL1 and _EL2 registers.
      
      However, most of the resulting definitions aren't actually used by
      anybody and have subsequently started to bit-rot when new fields have
      been added by the architecture, resulting in fields being part of the
      RES0 mask despite being defined and used elsewhere.
      
      Rather than fix up these masks, simply remove the unused parts entirely
      so that we can drop the maintenance burden. We can always add things
      back if we need them in the future.
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      73961dc1
    • Will Deacon's avatar
      arm64: esr: Add ESR exception class encoding for trapped ERET · 332e5281
      Will Deacon authored
      The ESR.EC encoding of 0b011010 (0x1a) describes an exception generated
      by an ERET, ERETAA or ERETAB instruction as a result of a nested
      virtualisation trap to EL2.
      
      Add an encoding for this EC and a string description so that we identify
      it correctly if we take one unexpectedly.
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Acked-by: default avatarMarc Zyngier <maz@kernel.org>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      332e5281
    • Chuhong Yuan's avatar
      arm64: Replace strncmp with str_has_prefix · b3e089cd
      Chuhong Yuan authored
      In commit b6b27355
      ("tracing: Use str_has_prefix() instead of using fixed sizes")
      the newly introduced str_has_prefix() was used
      to replace error-prone strncmp(str, const, len).
      Here fix codes with the same pattern.
      Signed-off-by: default avatarChuhong Yuan <hslester96@gmail.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      b3e089cd
    • Lorenzo Pieralisi's avatar
      ACPI/IORT: Rename arm_smmu_v3_set_proximity() 'node' local variable · 3e77eeb7
      Lorenzo Pieralisi authored
      Commit 36a2ba07 ("ACPI/IORT: Reject platform device creation on NUMA
      node mapping failure") introduced a local variable 'node' in
      arm_smmu_v3_set_proximity() that shadows the struct acpi_iort_node
      pointer function parameter.
      
      Execution was unaffected but it is prone to errors and can lead
      to subtle bugs.
      
      Rename the local variable to prevent any issue.
      Reviewed-by: default avatarHanjun Guo <guohanjun@huawei.com>
      Reported-by: default avatarWill Deacon <will@kernel.org>
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Cc: Hanjun Guo <guohanjun@huawei.com>
      Cc: Sudeep Holla <sudeep.holla@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      3e77eeb7
    • Masahiro Yamada's avatar
      arm64: remove unneeded uapi/asm/stat.h · b717480f
      Masahiro Yamada authored
      stat.h is listed in include/uapi/asm-generic/Kbuild, so Kbuild will
      automatically generate it.
      Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      b717480f
    • Bhupesh Sharma's avatar
      arm64/kexec: Use consistent convention of initializing 'kxec_buf.mem' with KEXEC_BUF_MEM_UNKNOWN · c19d050f
      Bhupesh Sharma authored
      With commit b6664ba4 ("s390, kexec_file: drop arch_kexec_mem_walk()"),
      we introduced the KEXEC_BUF_MEM_UNKNOWN macro. If kexec_buf.mem is set
      to this value, kexec_locate_mem_hole() will try to allocate free memory.
      
      While other arch(s) like s390 and x86_64 already use this macro to
      initialize kexec_buf.mem with, arm64 uses an equivalent value of 0.
      Replace it with KEXEC_BUF_MEM_UNKNOWN, to keep the convention of
      initializing 'kxec_buf.mem' consistent across various archs.
      
      Cc: takahiro.akashi@linaro.org
      Cc: james.morse@arm.com
      Reviewed-by: default avatarMatthias Brugger <mbrugger@suse.com>
      Signed-off-by: default avatarBhupesh Sharma <bhsharma@redhat.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      c19d050f
    • Mark Rutland's avatar
      arm64: remove pointless __KERNEL__ guards · b907b80d
      Mark Rutland authored
      For a number of years, UAPI headers have been split from kernel-internal
      headers. The latter are never exposed to userspace, and always built
      with __KERNEL__ defined.
      
      Most headers under arch/arm64 don't have __KERNEL__ guards, but there
      are a few stragglers lying around. To make things more consistent, and
      to set a good example going forward, let's remove these redundant
      __KERNEL__ guards.
      
      In a couple of cases, a trailing #endif lacked a comment describing its
      corresponding #if or #ifdef, so these are fixes up at the same time.
      
      Guards in auto-generated crypto code are left as-is, as these guards are
      generated by scripting imported from the upstream openssl project
      scripts. Guards in UAPI headers are left as-is, as these can be included
      by userspace or the kernel.
      
      There should be no functional change as a result of this patch.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      b907b80d
    • Julien Thierry's avatar
      arm64: Remove unused assembly macro · c8785794
      Julien Thierry authored
      As of commit 4141c857 ("arm64: convert
      raw syscall invocation to C"), moving syscall handling from assembly to
      C, the macro mask_nospec64 is no longer referenced.
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarJulien Thierry <julien.thierry@arm.com>
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      c8785794
    • Linus Torvalds's avatar
      Linux 5.3-rc3 · e21a712a
      Linus Torvalds authored
      e21a712a
  5. 04 Aug, 2019 10 commits
  6. 03 Aug, 2019 6 commits
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · cf6c8aef
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "A set of driver fixes for the I2C subsystem"
      
      * 'i2c/for-current-fixed' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: s3c2410: Mark expected switch fall-through
        i2c: at91: fix clk_offset for sama5d2
        i2c: at91: disable TXRDY interrupt after sending data
        i2c: iproc: Fix i2c master read more than 63 bytes
        eeprom: at24: make spd world-readable again
      cf6c8aef
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8b7fd679
      Linus Torvalds authored
      Pull perf tooling fixes from Thomas Gleixner:
       "A set of updates for perf tools and documentation:
      
        perf header:
          - Prevent a division by zero
          - Deal with an uninitialized warning proper
      
        libbpf:
          - Fix the missiong __WORDSIZE definition for musl & al
      
        UAPI headers:
          - Synchronize kernel headers
      
        Documentation:
          - Fix the memory units for perf.data size"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        libbpf: fix missing __WORDSIZE definition
        perf tools: Fix perf.data documentation units for memory size
        perf header: Fix use of unitialized value warning
        perf header: Fix divide by zero error if f_header.attr_size==0
        tools headers UAPI: Sync if_link.h with the kernel
        tools headers UAPI: Sync sched.h with the kernel
        tools headers UAPI: Sync usbdevice_fs.h with the kernels to get new ioctl
        tools perf beauty: Fix usbdevfs_ioctl table generator to handle _IOC()
        tools headers UAPI: Update tools's copy of drm.h headers
        tools headers UAPI: Update tools's copy of mman.h headers
        tools headers UAPI: Update tools's copy of kvm.h headers
        tools include UAPI: Sync x86's syscalls_64.tbl and generic unistd.h to pick up clone3 and pidfd_open
      8b7fd679
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0432a0a0
      Linus Torvalds authored
      Pull vdso timer fixes from Thomas Gleixner:
       "A series of commits to deal with the regression caused by the generic
        VDSO implementation.
      
        The usage of clock_gettime64() for 32bit compat fallback syscalls
        caused seccomp filters to kill innocent processes because they only
        allow clock_gettime().
      
        Handle the compat syscalls with clock_gettime() as before, which is
        not a functional problem for the VDSO as the legacy compat application
        interface is not y2038 safe anyway. It's just extra fallback code
        which needs to be implemented on every architecture.
      
        It's opt in for now so that it does not break the compile of already
        converted architectures in linux-next. Once these are fixed, the
        #ifdeffery goes away.
      
        So much for trying to be smart and reuse code..."
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        arm64: compat: vdso: Use legacy syscalls as fallback
        x86/vdso/32: Use 32bit syscall fallback
        lib/vdso/32: Provide legacy syscall fallbacks
        lib/vdso: Move fallback invocation to the callers
        lib/vdso/32: Remove inconsistent NULL pointer checks
      0432a0a0
    • Linus Torvalds's avatar
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · af42e745
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A small bunch of fixes from the irqchip department:
      
         - Fix a couple of UAF on error paths (RZA1, GICv3 ITS)
      
         - Fix iMX GPCv2 trigger setting
      
         - Add missing of_node_put() on error path in MBIGEN
      
         - Add another bunch of /* fall-through */ to silence warnings"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/renesas-rza1: Fix an use-after-free in rza1_irqc_probe()
        irqchip/irq-imx-gpcv2: Forward irq type to parent
        irqchip/irq-mbigen: Add of_node_put() before return
        irqchip/gic-v3-its: Free unused vpt_page when alloc vpe table fail
        irqchip/gic-v3: Mark expected switch fall-through
      af42e745
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.3-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · e12b243d
      Linus Torvalds authored
      Pull xfs fixes from Darrick Wong:
      
       - Avoid leaking kernel stack contents to userspace
      
       - Fix a potential null pointer dereference in the dabtree scrub code
      
      * tag 'xfs-5.3-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: Fix possible null-pointer dereferences in xchk_da_btree_block_check_sibling()
        xfs: fix stack contents leakage in the v1 inumber ioctls
      e12b243d
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · b7aea68a
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "17 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        drivers/acpi/scan.c: document why we don't need the device_hotplug_lock
        memremap: move from kernel/ to mm/
        lib/test_meminit.c: use GFP_ATOMIC in RCU critical section
        asm-generic: fix -Wtype-limits compiler warnings
        cgroup: kselftest: relax fs_spec checks
        mm/memory_hotplug.c: remove unneeded return for void function
        mm/migrate.c: initialize pud_entry in migrate_vma()
        coredump: split pipe command whitespace before expanding template
        page flags: prioritize kasan bits over last-cpuid
        ubsan: build ubsan.c more conservatively
        kasan: remove clang version check for KASAN_STACK
        mm: compaction: avoid 100% CPU usage during compaction when a task is killed
        mm: migrate: fix reference check race between __find_get_block() and migration
        mm: vmscan: check if mem cgroup is disabled or not before calling memcg slab shrinker
        ocfs2: remove set but not used variable 'last_hash'
        Revert "kmemleak: allow to coexist with fault injection"
        kernel/signal.c: fix a kernel-doc markup
      b7aea68a