1. 25 Aug, 2021 1 commit
    • Will Deacon's avatar
      Partially revert "arm64/mm: drop HAVE_ARCH_PFN_VALID" · 3eb9cdff
      Will Deacon authored
      This partially reverts commit 16c9afc7.
      
      Alex Bee reports a regression in 5.14 on their RK3328 SoC when
      configuring the PL330 DMA controller:
      
       | ------------[ cut here ]------------
       | WARNING: CPU: 2 PID: 373 at kernel/dma/mapping.c:235 dma_map_resource+0x68/0xc0
       | Modules linked in: spi_rockchip(+) fuse
       | CPU: 2 PID: 373 Comm: systemd-udevd Not tainted 5.14.0-rc7 #1
       | Hardware name: Pine64 Rock64 (DT)
       | pstate: 80000005 (Nzcv daif -PAN -UAO -TCO BTYPE=--)
       | pc : dma_map_resource+0x68/0xc0
       | lr : pl330_prep_slave_fifo+0x78/0xd0
      
      This appears to be because dma_map_resource() is being called for a
      physical address which does not correspond to a memory address yet does
      have a valid 'struct page' due to the way in which the vmemmap is
      constructed.
      
      Prior to 16c9afc7 ("arm64/mm: drop HAVE_ARCH_PFN_VALID"), the arm64
      implementation of pfn_valid() called memblock_is_memory() to return
      'false' for such regions and the DMA mapping request would proceed.
      However, now that we are using the generic implementation where only the
      presence of the memory map entry is considered, we return 'true' and
      erroneously fail with DMA_MAPPING_ERROR because we identify the region
      as DRAM.
      
      Although fixing this in the DMA mapping code is arguably the right fix,
      it is a risky, cross-architecture change at this stage in the cycle. So
      just revert arm64 back to its old pfn_valid() implementation for v5.14.
      The change to the generic pfn_valid() code is preserved from the original
      patch, so as to avoid impacting other architectures.
      
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Mike Rapoport <rppt@kernel.org>
      Cc: Anshuman Khandual <anshuman.khandual@arm.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Reported-by: default avatarAlex Bee <knaerzche@gmail.com>
      Link: https://lore.kernel.org/r/d3a3c828-b777-faf8-e901-904995688437@gmail.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      3eb9cdff
  2. 19 Aug, 2021 1 commit
    • Mark Rutland's avatar
      arm64: initialize all of CNTHCTL_EL2 · bde8fff8
      Mark Rutland authored
      In __init_el2_timers we initialize CNTHCTL_EL2.{EL1PCEN,EL1PCTEN} with a
      RMW sequence, leaving all other bits UNKNOWN.
      
      In general, we should initialize all bits in a register rather than
      using an RMW sequence, since most bits are UNKNOWN out of reset, and as
      new bits are added to the reigster their reset value might not result in
      expected behaviour.
      
      In the case of CNTHCTL_EL2, FEAT_ECV added a number of new control bits
      in previously RES0 bits, which reset to UNKNOWN values, and may cause
      issues for EL1 and EL0:
      
      * CNTHCTL_EL2.ECV enables the CNTPOFF_EL2 offset (which itself resets to
        an UNKNOWN value) at EL0 and EL1. Since the offset could reset to
        distinct values across CPUs, when the control bit resets to 1 this
        could break timekeeping generally.
      
      * CNTHCTL_EL2.{EL1TVT,EL1TVCT} trap EL0 and EL1 accesses to the EL1
        virtual timer/counter registers to EL2. When reset to 1, this could
        cause unexpected traps to EL2.
      
      Initializing these bits to zero avoids these problems, and all other
      bits in CNTHCTL_EL2 other than EL1PCEN and EL1PCTEN can safely be reset
      to zero.
      
      This patch ensures we initialize CNTHCTL_EL2 accordingly, only setting
      EL1PCEN and EL1PCTEN, and setting all other bits to zero.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Marc Zyngier <maz@kernel.org>
      Cc: Oliver Upton <oupton@google.com>
      Cc: Will Deacon <will@kernel.org>
      Reviewed-by: default avatarOliver Upton <oupton@google.com>
      Acked-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20210818161535.52786-1-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      bde8fff8
  3. 11 Aug, 2021 1 commit
    • Andrew Delgadillo's avatar
      arm64: clean vdso & vdso32 files · 017f5fb9
      Andrew Delgadillo authored
      commit a5b8ca97 ("arm64: do not descend to vdso directories twice")
      changes the cleaning behavior of arm64's vdso files, in that vdso.lds,
      vdso.so, and vdso.so.dbg are not removed upon a 'make clean/mrproper':
      
      $ make defconfig ARCH=arm64
      $ make ARCH=arm64
      $ make mrproper ARCH=arm64
      $ git clean -nxdf
      Would remove arch/arm64/kernel/vdso/vdso.lds
      Would remove arch/arm64/kernel/vdso/vdso.so
      Would remove arch/arm64/kernel/vdso/vdso.so.dbg
      
      To remedy this, manually descend into arch/arm64/kernel/vdso upon
      cleaning.
      
      After this commit:
      $ make defconfig ARCH=arm64
      $ make ARCH=arm64
      $ make mrproper ARCH=arm64
      $ git clean -nxdf
      <empty>
      
      Similar results are obtained for the vdso32 equivalent.
      Signed-off-by: default avatarAndrew Delgadillo <adelg@google.com>
      Cc: stable@vger.kernel.org
      Fixes: a5b8ca97 ("arm64: do not descend to vdso directories twice")
      Link: https://lore.kernel.org/r/20210810231755.1743524-1-adelg@google.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      017f5fb9
  4. 03 Aug, 2021 5 commits
    • Mark Rutland's avatar
      arm64: stacktrace: avoid tracing arch_stack_walk() · 0c32706d
      Mark Rutland authored
      When the function_graph tracer is in use, arch_stack_walk() may unwind
      the stack incorrectly, erroneously reporting itself, missing the final
      entry which is being traced, and reporting all traced entries between
      these off-by-one from where they should be.
      
      When ftrace hooks a function return, the original return address is
      saved to the fgraph ret_stack, and the return address  in the LR (or the
      function's frame record) is replaced with `return_to_handler`.
      
      When arm64's unwinder encounter frames returning to `return_to_handler`,
      it finds the associated original return address from the fgraph ret
      stack, assuming the most recent `ret_to_hander` entry on the stack
      corresponds to the most recent entry in the fgraph ret stack, and so on.
      
      When arch_stack_walk() is used to dump the current task's stack, it
      starts from the caller of arch_stack_walk(). However, arch_stack_walk()
      can be traced, and so may push an entry on to the fgraph ret stack,
      leaving the fgraph ret stack offset by one from the expected position.
      
      This can be seen when dumping the stack via /proc/self/stack, where
      enabling the graph tracer results in an unexpected
      `stack_trace_save_tsk` entry at the start of the trace, and `el0_svc`
      missing form the end of the trace.
      
      This patch fixes this by marking arch_stack_walk() as notrace, as we do
      for all other functions on the path to ftrace_graph_get_ret_stack().
      While a few helper functions are not marked notrace, their calls/returns
      are balanced, and will have no observable effect when examining the
      fgraph ret stack.
      
      It is possible for an exeption boundary to cause a similar offset if the
      return address of the interrupted context was in the LR. Fixing those
      cases will require some more substantial rework, and is left for
      subsequent patches.
      
      Before:
      
      | # cat /proc/self/stack
      | [<0>] proc_pid_stack+0xc4/0x140
      | [<0>] proc_single_show+0x6c/0x120
      | [<0>] seq_read_iter+0x240/0x4e0
      | [<0>] seq_read+0xe8/0x140
      | [<0>] vfs_read+0xb8/0x1e4
      | [<0>] ksys_read+0x74/0x100
      | [<0>] __arm64_sys_read+0x28/0x3c
      | [<0>] invoke_syscall+0x50/0x120
      | [<0>] el0_svc_common.constprop.0+0xc4/0xd4
      | [<0>] do_el0_svc+0x30/0x9c
      | [<0>] el0_svc+0x2c/0x54
      | [<0>] el0t_64_sync_handler+0x1a8/0x1b0
      | [<0>] el0t_64_sync+0x198/0x19c
      | # echo function_graph > /sys/kernel/tracing/current_tracer
      | # cat /proc/self/stack
      | [<0>] stack_trace_save_tsk+0xa4/0x110
      | [<0>] proc_pid_stack+0xc4/0x140
      | [<0>] proc_single_show+0x6c/0x120
      | [<0>] seq_read_iter+0x240/0x4e0
      | [<0>] seq_read+0xe8/0x140
      | [<0>] vfs_read+0xb8/0x1e4
      | [<0>] ksys_read+0x74/0x100
      | [<0>] __arm64_sys_read+0x28/0x3c
      | [<0>] invoke_syscall+0x50/0x120
      | [<0>] el0_svc_common.constprop.0+0xc4/0xd4
      | [<0>] do_el0_svc+0x30/0x9c
      | [<0>] el0t_64_sync_handler+0x1a8/0x1b0
      | [<0>] el0t_64_sync+0x198/0x19c
      
      After:
      
      | # cat /proc/self/stack
      | [<0>] proc_pid_stack+0xc4/0x140
      | [<0>] proc_single_show+0x6c/0x120
      | [<0>] seq_read_iter+0x240/0x4e0
      | [<0>] seq_read+0xe8/0x140
      | [<0>] vfs_read+0xb8/0x1e4
      | [<0>] ksys_read+0x74/0x100
      | [<0>] __arm64_sys_read+0x28/0x3c
      | [<0>] invoke_syscall+0x50/0x120
      | [<0>] el0_svc_common.constprop.0+0xc4/0xd4
      | [<0>] do_el0_svc+0x30/0x9c
      | [<0>] el0_svc+0x2c/0x54
      | [<0>] el0t_64_sync_handler+0x1a8/0x1b0
      | [<0>] el0t_64_sync+0x198/0x19c
      | # echo function_graph > /sys/kernel/tracing/current_tracer
      | # cat /proc/self/stack
      | [<0>] proc_pid_stack+0xc4/0x140
      | [<0>] proc_single_show+0x6c/0x120
      | [<0>] seq_read_iter+0x240/0x4e0
      | [<0>] seq_read+0xe8/0x140
      | [<0>] vfs_read+0xb8/0x1e4
      | [<0>] ksys_read+0x74/0x100
      | [<0>] __arm64_sys_read+0x28/0x3c
      | [<0>] invoke_syscall+0x50/0x120
      | [<0>] el0_svc_common.constprop.0+0xc4/0xd4
      | [<0>] do_el0_svc+0x30/0x9c
      | [<0>] el0_svc+0x2c/0x54
      | [<0>] el0t_64_sync_handler+0x1a8/0x1b0
      | [<0>] el0t_64_sync+0x198/0x19c
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Reviwed-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210802164845.45506-3-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      0c32706d
    • Mark Rutland's avatar
      arm64: stacktrace: fix comment · 8d5903f4
      Mark Rutland authored
      Due to a copy-paste error, we describe struct stackframe::pc as a
      snapshot of the `fp` field rather than the `lr` field.
      
      Fix the comment.
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Madhavan T. Venkataraman <madvenka@linux.microsoft.com>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Reviewed-by: default avatarMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210802164845.45506-2-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      8d5903f4
    • Barry Song's avatar
      arm64: fix the doc of RANDOMIZE_MODULE_REGION_FULL · f9c4ff2a
      Barry Song authored
      Obviously kaslr is setting the module region to 2GB rather than 4GB since
      commit b2eed9b5 ("arm64/kernel: kaslr: reduce module randomization
      range to 2 GB"). So fix the size of region in Kconfig.
      On the other hand, even though RANDOMIZE_MODULE_REGION_FULL is not set,
      module_alloc() can fall back to a 2GB window if ARM64_MODULE_PLTS is set.
      In this case, veneers are still needed. !RANDOMIZE_MODULE_REGION_FULL
      doesn't necessarily mean veneers are not needed.
      So fix the doc to be more precise to avoid any confusion to the readers
      of the code.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
      Cc: Qi Liu <liuqi115@huawei.com>
      Signed-off-by: default avatarBarry Song <song.bao.hua@hisilicon.com>
      Reviewed-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
      Link: https://lore.kernel.org/r/20210730125131.13724-1-song.bao.hua@hisilicon.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      f9c4ff2a
    • Masahiro Yamada's avatar
      arm64: move warning about toolchains to archprepare · 64ee84c7
      Masahiro Yamada authored
      Commit 987fdfec ("arm64: move --fix-cortex-a53-843419 linker test to
      Kconfig") fixed the false-positive warning in the installation step.
      
      Yet, there are some cases where this false-positive is shown. For example,
      you can see it when you cross 987fdfec during git-bisect.
      
        $ git checkout 987fdfec^
          [ snip ]
        $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig all
          [ snip ]
        $ git checkout v5.13
          [ snip]
        $ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig all
          [ snip ]
        arch/arm64/Makefile:25: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum
      
      In the stale include/config/auto.config, CONFIG_ARM64_ERRATUM_843419=y
      is set without CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419, so the warning
      is displayed while parsing the Makefiles.
      
      Make will restart with the updated include/config/auto.config, hence
      CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419 will be set eventually, but
      this warning is a surprise for users.
      
      Commit 25896d07 ("x86/build: Fix compiler support check for
      CONFIG_RETPOLINE") addressed a similar issue.
      
      Move $(warning ...) out of the parse stage of Makefiles.
      
      The same applies to CONFIG_ARM64_USE_LSE_ATOMICS.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      Link: https://lore.kernel.org/r/20210801053525.105235-1-masahiroy@kernel.orgSigned-off-by: default avatarWill Deacon <will@kernel.org>
      64ee84c7
    • Mark Rutland's avatar
      arm64: fix compat syscall return truncation · e30e8d46
      Mark Rutland authored
      Due to inconsistencies in the way we manipulate compat GPRs, we have a
      few issues today:
      
      * For audit and tracing, where error codes are handled as a (native)
        long, negative error codes are expected to be sign-extended to the
        native 64-bits, or they may fail to be matched correctly. Thus a
        syscall which fails with an error may erroneously be identified as
        failing.
      
      * For ptrace, *all* compat return values should be sign-extended for
        consistency with 32-bit arm, but we currently only do this for
        negative return codes.
      
      * As we may transiently set the upper 32 bits of some compat GPRs while
        in the kernel, these can be sampled by perf, which is somewhat
        confusing. This means that where a syscall returns a pointer above 2G,
        this will be sign-extended, but will not be mistaken for an error as
        error codes are constrained to the inclusive range [-4096, -1] where
        no user pointer can exist.
      
      To fix all of these, we must consistently use helpers to get/set the
      compat GPRs, ensuring that we never write the upper 32 bits of the
      return code, and always sign-extend when reading the return code.  This
      patch does so, with the following changes:
      
      * We re-organise syscall_get_return_value() to always sign-extend for
        compat tasks, and reimplement syscall_get_error() atop. We update
        syscall_trace_exit() to use syscall_get_return_value().
      
      * We consistently use syscall_set_return_value() to set the return
        value, ensureing the upper 32 bits are never set unexpectedly.
      
      * As the core audit code currently uses regs_return_value() rather than
        syscall_get_return_value(), we special-case this for
        compat_user_mode(regs) such that this will do the right thing. Going
        forward, we should try to move the core audit code over to
        syscall_get_return_value().
      
      Cc: <stable@vger.kernel.org>
      Reported-by: default avatarHe Zhe <zhe.he@windriver.com>
      Reported-by: default avatarweiyuchen <weiyuchen3@huawei.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Link: https://lore.kernel.org/r/20210802104200.21390-1-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      e30e8d46
  5. 21 Jul, 2021 2 commits
  6. 15 Jul, 2021 4 commits
    • Mark Rutland's avatar
      arm64: entry: fix KCOV suppression · e6f85cbe
      Mark Rutland authored
      We suppress KCOV for entry.o rather than entry-common.o. As entry.o is
      built from entry.S, this is pointless, and permits instrumentation of
      entry-common.o, which is built from entry-common.c.
      
      Fix the Makefile to suppress KCOV for entry-common.o, as we had intended
      to begin with. I've verified with objdump that this is working as
      expected.
      
      Fixes: bf6fa2c0 ("arm64: entry: don't instrument entry code with KCOV")
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Marc Zyngier <maz@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210715123049.9990-1-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      e6f85cbe
    • Mark Rutland's avatar
      arm64: entry: add missing noinstr · 31a7f0f6
      Mark Rutland authored
      We intend that all the early exception handling code is marked as
      `noinstr`, but we forgot this for __el0_error_handler_common(), which is
      called before we have completed entry from user mode. If it were
      instrumented, we could run into problems with RCU, lockdep, etc.
      
      Mark it as `noinstr` to prevent this.
      
      The few other functions in entry-common.c which do not have `noinstr` are
      called once we've completed entry, and are safe to instrument.
      
      Fixes: bb8e93a2 ("arm64: entry: convert SError handlers to C")
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Marc Zyngier <maz@kernel.org>
      Cc: Joey Gouly <joey.gouly@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210714172801.16475-1-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      31a7f0f6
    • Mark Rutland's avatar
      arm64: mte: fix restoration of GCR_EL1 from suspend · 59f44069
      Mark Rutland authored
      Since commit:
      
        bad1e1c6 ("arm64: mte: switch GCR_EL1 in kernel entry and exit")
      
      we saved/restored the user GCR_EL1 value at exception boundaries, and
      update_gcr_el1_excl() is no longer used for this. However it is used to
      restore the kernel's GCR_EL1 value when returning from a suspend state.
      Thus, the comment is misleading (and an ISB is necessary).
      
      When restoring the kernel's GCR value, we need an ISB to ensure this is
      used by subsequent instructions. We don't necessarily get an ISB by
      other means (e.g. if the kernel is built without support for pointer
      authentication). As __cpu_setup() initialised GCR_EL1.Exclude to 0xffff,
      until a context synchronization event, allocation tag 0 may be used
      rather than the desired set of tags.
      
      This patch drops the misleading comment, adds the missing ISB, and for
      clarity folds update_gcr_el1_excl() into its only user.
      
      Fixes: bad1e1c6 ("arm64: mte: switch GCR_EL1 in kernel entry and exit")
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Andrey Konovalov <andreyknvl@gmail.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20210714143843.56537-2-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      59f44069
    • Robin Murphy's avatar
      arm64: Avoid premature usercopy failure · 295cf156
      Robin Murphy authored
      Al reminds us that the usercopy API must only return complete failure
      if absolutely nothing could be copied. Currently, if userspace does
      something silly like giving us an unaligned pointer to Device memory,
      or a size which overruns MTE tag bounds, we may fail to honour that
      requirement when faulting on a multi-byte access even though a smaller
      access could have succeeded.
      
      Add a mitigation to the fixup routines to fall back to a single-byte
      copy if we faulted on a larger access before anything has been written
      to the destination, to guarantee making *some* forward progress. We
      needn't be too concerned about the overall performance since this should
      only occur when callers are doing something a bit dodgy in the first
      place. Particularly broken userspace might still be able to trick
      generic_perform_write() into an infinite loop by targeting write() at
      an mmap() of some read-only device register where the fault-in load
      succeeds but any store synchronously aborts such that copy_to_user() is
      genuinely unable to make progress, but, well, don't do that...
      
      CC: stable@vger.kernel.org
      Reported-by: default avatarChen Huang <chenhuang5@huawei.com>
      Suggested-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Link: https://lore.kernel.org/r/dc03d5c675731a1f24a62417dba5429ad744234e.1626098433.git.robin.murphy@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      295cf156
  7. 13 Jul, 2021 1 commit
  8. 12 Jul, 2021 3 commits
    • Will Deacon's avatar
      Revert "arm64: cache: Lower ARCH_DMA_MINALIGN to 64 (L1_CACHE_BYTES)" · c1132702
      Will Deacon authored
      This reverts commit 65688d2a.
      
      Unfortunately, the original Qualcomm Kryo cores integrated into the
      MSM8996 SoC feature an L2 cache with 128-byte lines which sits above
      the Point of Coherency. Consequently, we must restore ARCH_DMA_MINALIGN
      to its former ugly self so that non-coherent DMA can be performed safely
      on devices built using this SoC.
      
      Thanks to Jeffrey Hugo for confirming this with a hardware designer.
      
      Link: https://lore.kernel.org/r/CAOCk7NqdpUZFMSXfGjw0_1NaSK5gyTLgpS9kSdZn1jmBy-QkfA@mail.gmail.com/Reported-by: default avatarYassine Oudjana <y.oudjana@protonmail.com>
      Link: https://lore.kernel.org/r/uHgsRacR8hJ7nW-I-pIcehzg-lNIn7NJvaL7bP9tfAftFsBjsgaY2qTjG9zyBgxHkjNL1WPNrD7YVv2JVD2_Wy-a5VTbcq-1xEi8ZnwrXBo=@protonmail.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      c1132702
    • Carlos Bilbao's avatar
      arm64: Add missing header <asm/smp.h> in two files · e62e0748
      Carlos Bilbao authored
      Add missing header <asm/smp.h> on include/asm/smp_plat.h, as it calls function
      cpu_logical_map(). Also include it on kernel/cpufeature.c since it has calls to
      functions cpu_panic_kernel() and cpu_die_early().
      
      Both files call functions defined on this header, make the header dependencies
      less fragile.
      Signed-off-by: default avatarCarlos Bilbao <bilbao@vt.edu>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/4325940.LvFx2qVVIh@iron-maidenSigned-off-by: default avatarWill Deacon <will@kernel.org>
      e62e0748
    • Mark Rutland's avatar
      arm64: fix strlen() with CONFIG_KASAN_HW_TAGS · 5f34b1eb
      Mark Rutland authored
      When the kernel is built with CONFIG_KASAN_HW_TAGS and the CPU supports
      MTE, memory accesses are checked at 16-byte granularity, and
      out-of-bounds accesses can result in tag check faults. Our current
      implementation of strlen() makes unaligned 16-byte accesses (within a
      naturally aligned 4096-byte window), and can trigger tag check faults.
      
      This can be seen at boot time, e.g.
      
      | BUG: KASAN: invalid-access in __pi_strlen+0x14/0x150
      | Read at addr f4ff0000c0028300 by task swapper/0/0
      | Pointer tag: [f4], memory tag: [fe]
      |
      | CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.13.0-09550-g03c2813535a2-dirty #20
      | Hardware name: linux,dummy-virt (DT)
      | Call trace:
      |  dump_backtrace+0x0/0x1b0
      |  show_stack+0x1c/0x30
      |  dump_stack_lvl+0x68/0x84
      |  print_address_description+0x7c/0x2b4
      |  kasan_report+0x138/0x38c
      |  __do_kernel_fault+0x190/0x1c4
      |  do_tag_check_fault+0x78/0x90
      |  do_mem_abort+0x44/0xb4
      |  el1_abort+0x40/0x60
      |  el1h_64_sync_handler+0xb0/0xd0
      |  el1h_64_sync+0x78/0x7c
      |  __pi_strlen+0x14/0x150
      |  __register_sysctl_table+0x7c4/0x890
      |  register_leaf_sysctl_tables+0x1a4/0x210
      |  register_leaf_sysctl_tables+0xc8/0x210
      |  __register_sysctl_paths+0x22c/0x290
      |  register_sysctl_table+0x2c/0x40
      |  sysctl_init+0x20/0x30
      |  proc_sys_init+0x3c/0x48
      |  proc_root_init+0x80/0x9c
      |  start_kernel+0x640/0x69c
      |  __primary_switched+0xc0/0xc8
      
      To fix this, we can reduce the (strlen-internal) MIN_PAGE_SIZE to 16
      bytes when CONFIG_KASAN_HW_TAGS is selected. This will cause strlen() to
      align the base pointer downwards to a 16-byte boundary, and to discard
      the additional prefix bytes without counting them. All subsequent
      accesses will be 16-byte aligned 16-byte LDPs. While the comments say
      the body of the loop will access 32 bytes, this is performed as two
      16-byte acceses, with the second made only if the first did not
      encounter a NUL byte, so the body of the loop will not over-read across
      a 16-byte boundary.
      
      No other string routines are affected. The other str*() routines will
      not make any access which straddles a 16-byte boundary, and the mem*()
      routines will only make acceses which straddle a 16-byte boundary when
      which is entirely within the bounds of the relevant base and size
      arguments.
      
      Fixes: 325a1de8 ("arm64: Import updated version of Cortex Strings' strlen")
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Alexander Potapenko <glider@google.com
      Cc: Andrey Konovalov <andreyknvl@gmail.com>
      Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Will Deacon <will@kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Link: https://lore.kernel.org/r/20210712090043.20847-1-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
      5f34b1eb
  9. 11 Jul, 2021 11 commits
    • Linus Torvalds's avatar
      Linux 5.14-rc1 · e73f0f0e
      Linus Torvalds authored
      e73f0f0e
    • Hugh Dickins's avatar
      mm/rmap: try_to_migrate() skip zone_device !device_private · 6c855fce
      Hugh Dickins authored
      I know nothing about zone_device pages and !device_private pages; but if
      try_to_migrate_one() will do nothing for them, then it's better that
      try_to_migrate() filter them first, than trawl through all their vmas.
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarAlistair Popple <apopple@nvidia.com>
      Link: https://lore.kernel.org/lkml/1241d356-8ec9-f47b-a5ec-9b2bf66d242@google.com/
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Jason Gunthorpe <jgg@nvidia.com>
      Cc: Ralph Campbell <rcampbell@nvidia.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Yang Shi <shy828301@gmail.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6c855fce
    • Hugh Dickins's avatar
      mm/rmap: fix new bug: premature return from page_mlock_one() · 023e1a8d
      Hugh Dickins authored
      In the unlikely race case that page_mlock_one() finds VM_LOCKED has been
      cleared by the time it got page table lock, page_vma_mapped_walk_done()
      must be called before returning, either explicitly, or by a final call
      to page_vma_mapped_walk() - otherwise the page table remains locked.
      
      Fixes: cd62734c ("mm/rmap: split try_to_munlock from try_to_unmap")
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarAlistair Popple <apopple@nvidia.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
      Link: https://lore.kernel.org/lkml/20210711151446.GB4070@xsang-OptiPlex-9020/
      Link: https://lore.kernel.org/lkml/f71f8523-cba7-3342-40a7-114abc5d1f51@google.com/
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Jason Gunthorpe <jgg@nvidia.com>
      Cc: Ralph Campbell <rcampbell@nvidia.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Yang Shi <shy828301@gmail.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      023e1a8d
    • Hugh Dickins's avatar
      mm/rmap: fix old bug: munlocking THP missed other mlocks · d9770fcc
      Hugh Dickins authored
      The kernel recovers in due course from missing Mlocked pages: but there
      was no point in calling page_mlock() (formerly known as
      try_to_munlock()) on a THP, because nothing got done even when it was
      found to be mapped in another VM_LOCKED vma.
      
      It's true that we need to be careful: Mlocked accounting of pte-mapped
      THPs is too difficult (so consistently avoided); but Mlocked accounting
      of only-pmd-mapped THPs is supposed to work, even when multiple mappings
      are mlocked and munlocked or munmapped.  Refine the tests.
      
      There is already a VM_BUG_ON_PAGE(PageDoubleMap) in page_mlock(), so
      page_mlock_one() does not even have to worry about that complication.
      
      (I said the kernel recovers: but would page reclaim be likely to split
      THP before rediscovering that it's VM_LOCKED? I've not followed that up)
      
      Fixes: 9a73f61b ("thp, mlock: do not mlock PTE-mapped file huge pages")
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Link: https://lore.kernel.org/lkml/cfa154c-d595-406-eb7d-eb9df730f944@google.com/
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Alistair Popple <apopple@nvidia.com>
      Cc: Jason Gunthorpe <jgg@nvidia.com>
      Cc: Ralph Campbell <rcampbell@nvidia.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Yang Shi <shy828301@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9770fcc
    • Hugh Dickins's avatar
      mm/rmap: fix comments left over from recent changes · 64b586d1
      Hugh Dickins authored
      Parallel developments in mm/rmap.c have left behind some out-of-date
      comments: try_to_migrate_one() also accepts TTU_SYNC (already commented
      in try_to_migrate() itself), and try_to_migrate() returns nothing at
      all.
      
      TTU_SPLIT_FREEZE has just been deleted, so reword the comment about it
      in mm/huge_memory.c; and TTU_IGNORE_ACCESS was removed in 5.11, so
      delete the "recently referenced" comment from try_to_unmap_one() (once
      upon a time the comment was near the removed codeblock, but they drifted
      apart).
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarAlistair Popple <apopple@nvidia.com>
      Link: https://lore.kernel.org/lkml/563ce5b2-7a44-5b4d-1dfd-59a0e65932a9@google.com/
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Jason Gunthorpe <jgg@nvidia.com>
      Cc: Ralph Campbell <rcampbell@nvidia.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Yang Shi <shy828301@gmail.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      64b586d1
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 98f7fdce
      Linus Torvalds authored
      Pull irq fixes from Ingo Molnar:
       "Two fixes:
      
         - Fix a MIPS IRQ handling RCU bug
      
         - Remove a DocBook annotation for a parameter that doesn't exist
           anymore"
      
      * tag 'irq-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/mips: Fix RCU violation when using irqdomain lookup on interrupt entry
        genirq/irqdesc: Drop excess kernel-doc entry @lookup
      98f7fdce
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 877029d9
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Three fixes:
      
         - Fix load tracking bug/inconsistency
      
         - Fix a sporadic CFS bandwidth constraints enforcement bug
      
         - Fix a uclamp utilization tracking bug for newly woken tasks"
      
      * tag 'sched-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/uclamp: Ignore max aggregation if rq is idle
        sched/fair: Fix CFS bandwidth hrtimer expiry type
        sched/fair: Sync load_sum with load_avg after dequeue
      877029d9
    • Linus Torvalds's avatar
      Merge tag 'perf-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 936b664f
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "A fix and a hardware-enablement addition:
      
         - Robustify uncore_snbep's skx_iio_set_mapping()'s error cleanup
      
         - Add cstate event support for Intel ICELAKE_X and ICELAKE_D"
      
      * tag 'perf-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/uncore: Clean up error handling path of iio mapping
        perf/x86/cstate: Add ICELAKE_X and ICELAKE_D support
      936b664f
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 301c8b1d
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
      
       - Fix a Sparc crash
      
       - Fix a number of objtool warnings
      
       - Fix /proc/lockdep output on certain configs
      
       - Restore a kprobes fail-safe
      
      * tag 'locking-urgent-2021-07-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/atomic: sparc: Fix arch_cmpxchg64_local()
        kprobe/static_call: Restore missing static_call_text_reserved()
        static_call: Fix static_call_text_reserved() vs __init
        jump_label: Fix jump_label_text_reserved() vs __init
        locking/lockdep: Fix meaningless /proc/lockdep output of lock classes on !CONFIG_PROVE_LOCKING
      301c8b1d
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8b9cc17a
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is a set of minor fixes and clean ups in the core and various
        drivers.
      
        The only core change in behaviour is the I/O retry for spinup notify,
        but that shouldn't impact anything other than the failing case"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (23 commits)
        scsi: virtio_scsi: Add validation for residual bytes from response
        scsi: ipr: System crashes when seeing type 20 error
        scsi: core: Retry I/O for Notify (Enable Spinup) Required error
        scsi: mpi3mr: Fix warnings reported by smatch
        scsi: qedf: Add check to synchronize abort and flush
        scsi: MAINTAINERS: Add mpi3mr driver maintainers
        scsi: libfc: Fix array index out of bound exception
        scsi: mvsas: Use DEVICE_ATTR_RO()/RW() macro
        scsi: megaraid_mbox: Use DEVICE_ATTR_ADMIN_RO() macro
        scsi: qedf: Use DEVICE_ATTR_RO() macro
        scsi: qedi: Use DEVICE_ATTR_RO() macro
        scsi: message: mptfc: Switch from pci_ to dma_ API
        scsi: be2iscsi: Fix some missing space in some messages
        scsi: be2iscsi: Fix an error handling path in beiscsi_dev_probe()
        scsi: ufs: Fix build warning without CONFIG_PM
        scsi: bnx2fc: Remove meaningless bnx2fc_abts_cleanup() return value assignment
        scsi: qla2xxx: Add heartbeat check
        scsi: virtio_scsi: Do not overwrite SCSI status
        scsi: libsas: Add LUN number check in .slave_alloc callback
        scsi: core: Inline scsi_mq_alloc_queue()
        ...
      8b9cc17a
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.14-2021-07-10' of... · b1412bd7
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.14-2021-07-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull more perf tool updates from Arnaldo Carvalho de Melo:
       "New features:
      
         - Enable use of BPF counters with 'perf stat --for-each-cgroup',
           using per-CPU 'cgroup-switch' events with an attached BPF program
           that does aggregation per-cgroup in the kernel instead of using
           per-cgroup perf events.
      
         - Add Topdown metrics L2 events as default events in 'perf stat' for
           systems having those events.
      
        Hardware tracing:
      
         - Add a config for max loops without consuming a packet in the Intel
           PT packet decoder, set via 'perf config intel-pt.max-loops=N'
      
        Hardware enablement:
      
         - Disable misleading NMI watchdog message in 'perf stat' on hybrid
           systems such as Intel Alder Lake.
      
         - Add a dummy event on hybrid systems to collect metadata records.
      
         - Add 24x7 nest metric events for the Power10 platform.
      
        Fixes:
      
         - Fix event parsing for PMUs starting with the same prefix.
      
         - Fix the 'perf trace' 'trace' alias installation dir.
      
         - Fix buffer size to report iregs in perf script python scripts,
           supporting the extended registers in PowerPC.
      
         - Fix overflow in elf_sec__is_text().
      
         - Fix 's' on source line when disasm is empty in the annotation TUI,
           accessible via 'perf annotate', 'perf report' and 'perf top'.
      
         - Plug leaks in scandir() returned dirent entries in 'perf test' when
           sorting the shell tests.
      
         - Fix --task and --stat with pipe input in 'perf report'.
      
         - Fix 'perf probe' use of debuginfo files by build id.
      
         - If a DSO has both dynsym and symtab ELF sections, read from both
           when loading the symbol table, fixing a problem processing Fedora
           32 glibc DSOs.
      
        Libraries:
      
         - Add grouping of events to libperf, from code in tools/perf,
           allowing libperf users to use that mode.
      
        Misc:
      
         - Filter plt stubs from the 'perf probe --functions' output.
      
         - Update UAPI header copies for asound, DRM, mman-common.h and the
           ones affected by the quotactl_fd syscall"
      
      * tag 'perf-tools-for-v5.14-2021-07-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (29 commits)
        perf test: Add free() calls for scandir() returned dirent entries
        libperf: Add tests for perf_evlist__set_leader()
        libperf: Remove BUG_ON() from library code in get_group_fd()
        libperf: Add group support to perf_evsel__open()
        perf tools: Fix pattern matching for same substring in different PMU type
        perf record: Add a dummy event on hybrid systems to collect metadata records
        perf stat: Add Topdown metrics L2 events as default events
        libperf: Adopt evlist__set_leader() from tools/perf as perf_evlist__set_leader()
        libperf: Move 'nr_groups' from tools/perf to evlist::nr_groups
        libperf: Move 'leader' from tools/perf to perf_evsel::leader
        libperf: Move 'idx' from tools/perf to perf_evsel::idx
        libperf: Change tests to single static and shared binaries
        perf intel-pt: Add a config for max loops without consuming a packet
        perf stat: Disable the NMI watchdog message on hybrid
        perf vendor events power10: Adds 24x7 nest metric events for power10 platform
        perf script python: Fix buffer size to report iregs in perf script
        perf trace: Fix the perf trace link location
        perf top: Fix overflow in elf_sec__is_text()
        perf annotate: Fix 's' on source line when disasm is empty
        perf probe: Do not show @plt function by default
        ...
      b1412bd7
  10. 10 Jul, 2021 11 commits
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · de554096
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "Mostly documentation/comment changes and non urgent fixes.
      
         - add or fix SPDX identifiers
      
         - NXP pcf*: fix datasheet URLs
      
         - imxdi: add wakeup support
      
         - pcf2127: handle timestamp interrupts, this fixes a possible
           interrupt storm
      
         - bd70528: Drop BD70528 support"
      
      * tag 'rtc-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (33 commits)
        rtc: pcf8523: rename register and bit defines
        rtc: pcf2127: handle timestamp interrupts
        rtc: at91sam9: Remove unnecessary offset variable checks
        rtc: s5m: Check return value of s5m_check_peding_alarm_interrupt()
        rtc: spear: convert to SPDX identifier
        rtc: tps6586x: convert to SPDX identifier
        rtc: tps80031: convert to SPDX identifier
        rtc: rtd119x: Fix format of SPDX identifier
        rtc: sc27xx: Fix format of SPDX identifier
        rtc: palmas: convert to SPDX identifier
        rtc: max6900: convert to SPDX identifier
        rtc: ds1374: convert to SPDX identifier
        rtc: au1xxx: convert to SPDX identifier
        rtc: pcf85063: Update the PCF85063A datasheet revision
        dt-bindings: rtc: ti,bq32k: take maintainership
        rtc: pcf8563: Fix the datasheet URL
        rtc: pcf85063: Fix the datasheet URL
        rtc: pcf2127: Fix the datasheet URL
        dt-bindings: rtc: ti,bq32k: Convert to json-schema
        dt-bindings: rtc: rx8900: Convert to YAML schema
        ...
      de554096
    • Mel Gorman's avatar
      mm/page_alloc: Revert pahole zero-sized workaround · 6bce2443
      Mel Gorman authored
      Commit dbbee9d5 ("mm/page_alloc: convert per-cpu list protection to
      local_lock") folded in a workaround patch for pahole that was unable to
      deal with zero-sized percpu structures.
      
      A superior workaround is achieved with commit a0b8200d ("kbuild:
      skip per-CPU BTF generation for pahole v1.18-v1.21").
      
      This patch reverts the dummy field and the pahole version check.
      
      Fixes: dbbee9d5 ("mm/page_alloc: convert per-cpu list protection to local_lock")
      Signed-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6bce2443
    • Alexandre Belloni's avatar
      rtc: pcf8523: rename register and bit defines · 4aa90c03
      Alexandre Belloni authored
      arch/arm/mach-ixp4xx/include/mach/platform.h now gets included indirectly
      and defines REG_OFFSET. Rename the register and bit definition to something
      specific to the driver.
      
      Fixes: 7fd70c65 ("ARM: irqstat: Get rid of duplicated declaration")
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
      Link: https://lore.kernel.org/r/20210710211431.1393589-1-alexandre.belloni@bootlin.com
      4aa90c03
    • Linus Torvalds's avatar
      Merge tag '5.14-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6 · 1e16624d
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "13 cifs/smb3 fixes. Most are to address minor issues pointed out by
        Coverity.
      
        Also includes a packet signing enhancement and mount improvement"
      
      * tag '5.14-rc-smb3-fixes-part2' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: update internal version number
        cifs: prevent NULL deref in cifs_compose_mount_options()
        SMB3.1.1: Add support for negotiating signing algorithm
        cifs: use helpers when parsing uid/gid mount options and validate them
        CIFS: Clarify SMB1 code for POSIX Lock
        CIFS: Clarify SMB1 code for rename open file
        CIFS: Clarify SMB1 code for delete
        CIFS: Clarify SMB1 code for SetFileSize
        smb3: fix typo in header file
        CIFS: Clarify SMB1 code for UnixSetPathInfo
        CIFS: Clarify SMB1 code for UnixCreateSymLink
        cifs: clarify SMB1 code for UnixCreateHardLink
        cifs: make locking consistent around the server session status
      1e16624d
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.14-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 67d8d365
      Linus Torvalds authored
      Pull pci fix from Bjorn Helgaas:
       "Revert host bridge window patch that fixed HP EliteDesk 805 G6, but
        broke ppc:sam460ex (Bjorn Helgaas)"
      
      * tag 'pci-v5.14-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci:
        Revert "PCI: Coalesce host bridge contiguous apertures"
      67d8d365
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · 88bbd8a0
      Linus Torvalds authored
      Pull i3c updates from Alexandre Belloni:
      
       - two small fixes to the svc driver
      
      * tag 'i3c/for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c: master: svc: fix doc warning in svc-i3c-master.c
        i3c: master: svc: drop free_irq of devm_request_irq allocated irq
      88bbd8a0
    • Linus Torvalds's avatar
      Merge tag 'thermal-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux · f7ea4be4
      Linus Torvalds authored
      Pull thermal updates from Daniel Lezcano:
      
       - Add rk3568 sensor support (Finley Xiao)
      
       - Add missing MODULE_DEVICE_TABLE for the Spreadtrum sensor (Chunyan
         Zhang)
      
       - Export additionnal attributes for the int340x thermal processor
         (Srinivas Pandruvada)
      
       - Add SC7280 compatible for the tsens driver (Rajeshwari Ravindra
         Kamble)
      
       - Fix kernel documentation for thermal_zone_device_unregister() and use
         devm_platform_get_and_ioremap_resource() (Yang Yingliang)
      
       - Fix coefficient calculations for the rcar_gen3 sensor driver (Niklas
         Söderlund)
      
       - Fix shadowing variable rcar_gen3_ths_tj_1 (Geert Uytterhoeven)
      
       - Add missing of_node_put() for the iMX and Spreadtrum sensors
         (Krzysztof Kozlowski)
      
       - Add tegra3 thermal sensor DT bindings (Dmitry Osipenko)
      
       - Stop the thermal zone monitoring when unregistering it to prevent a
         temperature update without the 'get_temp' callback (Dmitry Osipenko)
      
       - Add rk3568 DT bindings, convert bindings to yaml schemas and add the
         corresponding compatible in the Rockchip sensor (Ezequiel Garcia)
      
       - Add the sc8180x compatible for the Qualcomm tsensor (Bjorn Andersson)
      
       - Use the find_first_zero_bit() function instead of custom code (Andy
         Shevchenko)
      
       - Fix the kernel doc for the device cooling device (Yang Li)
      
       - Reorg the processor thermal int340x to set the scene for the PCI mmio
         driver (Srinivas Pandruvada)
      
       - Add PCI MMIO driver for the int340x processor thermal driver
         (Srinivas Pandruvada)
      
       - Add hwmon sensors for the mediatek sensor (Frank Wunderlich)
      
       - Fix warning for return value reported by Smatch for the int340x
         thermal processor (Srinivas Pandruvada)
      
       - Fix wrong register access and decoding for the int340x thermal
         processor (Srinivas Pandruvada)
      
      * tag 'thermal-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thermal/linux: (23 commits)
        thermal/drivers/int340x/processor_thermal: Fix tcc setting
        thermal/drivers/int340x/processor_thermal: Fix warning for return value
        thermal/drivers/mediatek: Add sensors-support
        thermal/drivers/int340x/processor_thermal: Add PCI MMIO based thermal driver
        thermal/drivers/int340x/processor_thermal: Split enumeration and processing part
        thermal: devfreq_cooling: Fix kernel-doc
        thermal/drivers/intel/intel_soc_dts_iosf: Switch to use find_first_zero_bit()
        dt-bindings: thermal: tsens: Add sc8180x compatible
        dt-bindings: rockchip-thermal: Support the RK3568 SoC compatible
        dt-bindings: thermal: convert rockchip-thermal to json-schema
        thermal/core/thermal_of: Stop zone device before unregistering it
        dt-bindings: thermal: Add binding for Tegra30 thermal sensor
        thermal/drivers/sprd: Add missing of_node_put for loop iteration
        thermal/drivers/imx_sc: Add missing of_node_put for loop iteration
        thermal/drivers/rcar_gen3_thermal: Do not shadow rcar_gen3_ths_tj_1
        thermal/drivers/rcar_gen3_thermal: Fix coefficient calculations
        thermal/drivers/st: Use devm_platform_get_and_ioremap_resource()
        thermal/core: Correct function name thermal_zone_device_unregister()
        dt-bindings: thermal: tsens: Add compatible string to TSENS binding for SC7280
        thermal/drivers/int340x: processor_thermal: Export additional attributes
        ...
      f7ea4be4
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 81361b83
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Increase the -falign-functions alignment for the debug option.
      
       - Remove ugly libelf checks from the top Makefile.
      
       - Make the silent build (-s) more silent.
      
       - Re-compile the kernel if KBUILD_BUILD_TIMESTAMP is specified.
      
       - Various script cleanups
      
      * tag 'kbuild-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (27 commits)
        scripts: add generic syscallnr.sh
        scripts: check duplicated syscall number in syscall table
        sparc: syscalls: use pattern rules to generate syscall headers
        parisc: syscalls: use pattern rules to generate syscall headers
        nds32: add arch/nds32/boot/.gitignore
        kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
        kbuild: modpost: Explicitly warn about unprototyped symbols
        kbuild: remove trailing slashes from $(KBUILD_EXTMOD)
        kconfig.h: explain IS_MODULE(), IS_ENABLED()
        kconfig: constify long_opts
        scripts/setlocalversion: simplify the short version part
        scripts/setlocalversion: factor out 12-chars hash construction
        scripts/setlocalversion: add more comments to -dirty flag detection
        scripts/setlocalversion: remove workaround for old make-kpkg
        scripts/setlocalversion: remove mercurial, svn and git-svn supports
        kbuild: clean up ${quiet} checks in shell scripts
        kbuild: sink stdout from cmd for silent build
        init: use $(call cmd,) for generating include/generated/compile.h
        kbuild: merge scripts/mkmakefile to top Makefile
        sh: move core-y in arch/sh/Makefile to arch/sh/Kbuild
        ...
      81361b83
    • Linus Torvalds's avatar
      Merge tag 's390-5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e98e03d0
      Linus Torvalds authored
      Pull more s390 updates from Vasily Gorbik:
      
       - Fix preempt_count initialization.
      
       - Rework call_on_stack() macro to add proper type handling and avoid
         possible register corruption.
      
       - More error prone "register asm" removal and fixes.
      
       - Fix syscall restarting when multiple signals are coming in. This adds
         minimalistic trampolines to vdso so we can return from signal without
         using the stack which requires pgm check handler hacks when NX is
         enabled.
      
       - Remove HAVE_IRQ_EXIT_ON_IRQ_STACK since this is no longer true after
         switch to generic entry.
      
       - Fix protected virtualization secure storage access exception
         handling.
      
       - Make machine check C handler always enter with DAT enabled and move
         register validation to C code.
      
       - Fix tinyconfig boot problem by avoiding MONITOR CALL without
         CONFIG_BUG.
      
       - Increase asm symbols alignment to 16 to make it consistent with
         compilers.
      
       - Enable concurrent access to the CPU Measurement Counter Facility.
      
       - Add support for dynamic AP bus size limit and rework ap_dqap to deal
         with messages greater than recv buffer.
      
      * tag 's390-5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (41 commits)
        s390: preempt: Fix preempt_count initialization
        s390/linkage: increase asm symbols alignment to 16
        s390: rename CALL_ON_STACK_NORETURN() to call_on_stack_noreturn()
        s390: add type checking to CALL_ON_STACK_NORETURN() macro
        s390: remove old CALL_ON_STACK() macro
        s390/softirq: use call_on_stack() macro
        s390/lib: use call_on_stack() macro
        s390/smp: use call_on_stack() macro
        s390/kexec: use call_on_stack() macro
        s390/irq: use call_on_stack() macro
        s390/mm: use call_on_stack() macro
        s390: introduce proper type handling call_on_stack() macro
        s390/irq: simplify on_async_stack()
        s390/irq: inline do_softirq_own_stack()
        s390/irq: simplify do_softirq_own_stack()
        s390/ap: get rid of register asm in ap_dqap()
        s390: rename PIF_SYSCALL_RESTART to PIF_EXECVE_PGSTE_RESTART
        s390: move restart of execve() syscall
        s390/signal: remove sigreturn on stack
        s390/signal: switch to using vdso for sigreturn and syscall restart
        ...
      e98e03d0
    • Linus Torvalds's avatar
      Merge tag 'mips_5.14_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 379cf80a
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
      
       - fix for accesing gic via vdso
      
       - two build fixes
      
      * tag 'mips_5.14_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: vdso: Invalid GIC access through VDSO
        mips: disable branch profiling in boot/decompress.o
        mips: always link byteswap helpers into decompressor
      379cf80a
    • Linus Torvalds's avatar
      Merge tag 'arm-defconfig-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · af4cf6a5
      Linus Torvalds authored
      Pull ARM defconfig updates from "Olof Johansson
       "A set of defconfig changes, we keep them in a separate branch to avoid
        conflicts between topics by separating them out.
      
        These changes are almost exclusively turning on new drivers for
        various platforms, or turning on modules for new drivers for the
        shared generic configs"
      
      * tag 'arm-defconfig-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (22 commits)
        arm64: defconfig: Enable renesas usb xhci pci host controller
        arm64: defconfig: Visconti: Enable GPIO
        arm64: defconfig: Visconti: Enable PWM
        arm64: defconfig: add drivers needed for DragonBoard410c
        ARM: config: aspeed: Add DEBUG_FS and EXT4
        ARM: ixp4xx_defconfig: add MTD_PHYSMAP
        ARM: ixp4xx_defconfig: add CONFIG_SERIAL_OF_PLATFORM
        ARM: imx_v6_v7_defconfig: Select the Wifi ath10k sdio driver
        ARM: exynos_defconfig: restore framebuffer support
        arm64: defconfig: Enable ARCH_R9A07G044
        ARM: configs: at91_dt_defconfig: configs for sam9x60
        arm64: defconfig: Enable Exynos UFS driver
        arm64: defconfig: qcom: enable interconnect for SM8350
        ARM: tegra_defconfig: Enable CONFIG_DEVFREQ_THERMAL
        arm64: defconfig: Enable usb2_clksel for R-Car Gen3 and RZ/G2
        arm64: defconfig: enable Layerscape EDAC driver
        ARM: omap2plus_defconfig: Add LP5523 LED driver
        ARM: omap2plus_defconfig: Add WL1251 and WEXT modules
        ARM: shmobile: defconfig: Refresh for v5.13-rc1
        arm64: defconfig: Allow Mediatek boards to boot from the mmc
        ...
      af4cf6a5