Commit ba1f9c8fe3d4 for kernel

commit ba1f9c8fe3d443a78814cdf8ac8f9829b5ca7095
Merge: 9aa4c37f71b9 83ef4a378e56
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Mon Nov 18 18:10:37 2024 -0800

    Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

    Pull arm64 updates from Catalin Marinas:

     - Support for running Linux in a protected VM under the Arm
       Confidential Compute Architecture (CCA)

     - Guarded Control Stack user-space support. Current patches follow the
       x86 ABI of implicitly creating a shadow stack on clone(). Subsequent
       patches (already on the list) will add support for clone3() allowing
       finer-grained control of the shadow stack size and placement from
       libc

     - AT_HWCAP3 support (not running out of HWCAP2 bits yet but we are
       getting close with the upcoming dpISA support)

     - Other arch features:

         - In-kernel use of the memcpy instructions, FEAT_MOPS (previously
           only exposed to user; uaccess support not merged yet)

         - MTE: hugetlbfs support and the corresponding kselftests

         - Optimise CRC32 using the PMULL instructions

         - Support for FEAT_HAFT enabling ARCH_HAS_NONLEAF_PMD_YOUNG

         - Optimise the kernel TLB flushing to use the range operations

         - POE/pkey (permission overlays): further cleanups after bringing
           the signal handler in line with the x86 behaviour for 6.12

     - arm64 perf updates:

         - Support for the NXP i.MX91 PMU in the existing IMX driver

         - Support for Ampere SoCs in the Designware PCIe PMU driver

         - Support for Marvell's 'PEM' PCIe PMU present in the 'Odyssey' SoC

         - Support for Samsung's 'Mongoose' CPU PMU

         - Support for PMUv3.9 finer-grained userspace counter access
           control

         - Switch back to platform_driver::remove() now that it returns
           'void'

         - Add some missing events for the CXL PMU driver

     - Miscellaneous arm64 fixes/cleanups:

         - Page table accessors cleanup: type updates, drop unused macros,
           reorganise arch_make_huge_pte() and clean up pte_mkcont(), sanity
           check addresses before runtime P4D/PUD folding

         - Command line override for ID_AA64MMFR0_EL1.ECV (advertising the
           FEAT_ECV for the generic timers) allowing Linux to boot with
           firmware deployments that don't set SCTLR_EL3.ECVEn

         - ACPI/arm64: tighten the check for the array of platform timer
           structures and adjust the error handling procedure in
           gtdt_parse_timer_block()

         - Optimise the cache flush for the uprobes xol slot (skip if no
           change) and other uprobes/kprobes cleanups

         - Fix the context switching of tpidrro_el0 when kpti is enabled

         - Dynamic shadow call stack fixes

         - Sysreg updates

         - Various arm64 kselftest improvements

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (168 commits)
      arm64: tls: Fix context-switching of tpidrro_el0 when kpti is enabled
      kselftest/arm64: Try harder to generate different keys during PAC tests
      kselftest/arm64: Don't leak pipe fds in pac.exec_sign_all()
      arm64/ptrace: Clarify documentation of VL configuration via ptrace
      kselftest/arm64: Corrupt P0 in the irritator when testing SSVE
      acpi/arm64: remove unnecessary cast
      arm64/mm: Change protval as 'pteval_t' in map_range()
      kselftest/arm64: Fix missing printf() argument in gcs/gcs-stress.c
      kselftest/arm64: Add FPMR coverage to fp-ptrace
      kselftest/arm64: Expand the set of ZA writes fp-ptrace does
      kselftets/arm64: Use flag bits for features in fp-ptrace assembler code
      kselftest/arm64: Enable build of PAC tests with LLVM=1
      kselftest/arm64: Check that SVCR is 0 in signal handlers
      selftests/mm: Fix unused function warning for aarch64_write_signal_pkey()
      kselftest/arm64: Fix printf() compiler warnings in the arm64 syscall-abi.c tests
      kselftest/arm64: Fix printf() warning in the arm64 MTE prctl() test
      kselftest/arm64: Fix printf() compiler warnings in the arm64 fp tests
      kselftest/arm64: Fix build with stricter assemblers
      arm64/scs: Drop unused prototype __pi_scs_patch_vmlinux()
      arm64/scs: Deal with 64-bit relative offsets in FDE frames
      ...

diff --cc arch/arm64/include/asm/mman.h
index 798d965760d4,1dbfb56cb313..1d53022fc7e1
--- a/arch/arm64/include/asm/mman.h
+++ b/arch/arm64/include/asm/mman.h
@@@ -41,9 -38,9 +41,12 @@@ static inline unsigned long arch_calc_v
  	 * backed by tags-capable memory. The vm_flags may be overridden by a
  	 * filesystem supporting MTE (RAM-based).
  	 */
--	if (system_supports_mte() &&
- 	    ((flags & MAP_ANONYMOUS) || shmem_file(file)))
 -	    (flags & (MAP_ANONYMOUS | MAP_HUGETLB)))
--		return VM_MTE_ALLOWED;
++	if (system_supports_mte()) {
++		if (flags & (MAP_ANONYMOUS | MAP_HUGETLB))
++			return VM_MTE_ALLOWED;
++		if (shmem_file(file))
++			return VM_MTE_ALLOWED;
++	}

  	return 0;
  }