[GIT PULL] arm64 fixes for 7.4-rc1

From: Catalin Marinas

Date: Fri Oct 30 2026 - 14:25:04 EST


Hi Linus,

Here are three fixes that turned up during the merging window: shadow
stack not freed during a failed fork or it is unmapped from parent when
a worker thread exits (same commit covers both); PTE_CONT set on
PROT_NONE entries but subsequently ignored by the unfolding code since
pte_valid() is false (pte_present() is true); an MPAM lock not released
on the error path. Thanks!

The following changes since commit d0de3a73194a250a2e5ffbf1dc604c0bcbb16e8a:

Merge branch 'for-next/fw-rmi' into for-next/core (2026-10-15 19:09:31 +0100)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux tags/arm64-fixes

for you to fetch changes up to f46be4da2cbb17574b5369517a9a1e1b414063b4:

selftests/arm64: GCS must not leak on a failed clone3 (2026-10-29 20:42:23 +0000)

----------------------------------------------------------------
arm64 fixes:

- Release the GCS on a failed fork. copy_thread() can allocate a GCS
for CLONE_VM threads but a later copy_process() failure left the VMA
in the parent's mm. Implement exit_thread() to free it and stop
kernel threads and user workers inheriting the parent's GCS
base/size. Add a kselftest for the clone3() failure case

- Do not set PTE_CONT on invalid PTEs in contpte_set_ptes(). Batched
set_ptes() of present-invalid entries (e.g. PROT_NONE) created contpte
groups that the single-PTE helpers did not unfold, corrupting a
neighbouring guard marker via test_and_clear_young_ptes()

- Release the MPAM mon_sel lock on the mpam_save_mbwu_state() error
paths

----------------------------------------------------------------
Iván Ezequiel Rodriguez (2):
arm64/gcs: release GCS on failed fork
selftests/arm64: GCS must not leak on a failed clone3

Ping Li (1):
arm_mpam: Release the mon_sel lock on mpam_save_mbwu_state() errors

Zhao Gongyi (1):
arm64/mm: restrict transparent contpte mappings to valid PTEs

arch/arm64/Kconfig | 1 +
arch/arm64/include/asm/pgtable.h | 3 +
arch/arm64/kernel/process.c | 17 +++
arch/arm64/mm/contpte.c | 4 +-
drivers/resctrl/mpam_devices.c | 12 +-
tools/testing/selftests/arm64/gcs/.gitignore | 1 +
tools/testing/selftests/arm64/gcs/Makefile | 3 +-
.../testing/selftests/arm64/gcs/gcs-clone-pidfd.c | 168 +++++++++++++++++++++
tools/testing/selftests/arm64/gcs/gcs-locking.c | 20 ---
tools/testing/selftests/arm64/gcs/gcs-util.h | 24 +++
tools/testing/selftests/arm64/gcs/libc-gcs.c | 20 ---
11 files changed, 224 insertions(+), 49 deletions(-)
create mode 100644 tools/testing/selftests/arm64/gcs/gcs-clone-pidfd.c

--
Catalin