linux/arch/arm64/kernel
Linus Torvalds 24172e0d79 arm64 fixes for -rc6
- Avoid sleeping in atomic context when changing linear map permissions
   for DEBUG_PAGEALLOC or KFENCE.
 
 - Rework printing of Spectre mitigation status to avoid hardlockup when
   enabling per-task mitigations on the context-switch path.
 
 - Reject kernel modules when instruction patching fails either due to
   the DWARF-based SCS patching or because of an alternatives callback
   residing outside of the core kernel text.
 
 - Propagate error when updating kernel memory permissions in kprobes.
 
 - Drop pointless, incorrect message when enabling the ACPI SPCR console.
 
 - Use value-returning LSE instructions for per-cpu atomics to reduce
   latency in SRCU locking routines.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCgAuFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAmkSAqQQHHdpbGxAa2Vy
 bmVsLm9yZwAKCRC3rHDchMFjNHIpB/0SubZVLevJmInp4nu93ghHwu/8UhYG1Jpg
 P4DayUJ0Ghnox6PMSNci4s2+RSQc8NbdF2I4kcJNa8v8kMt9sXDL87614nZXDVtK
 FaEMK4PnnV3iFcQUr58kKWEf8cowG7gIi9Lq61InADAbZhQCDi/KAnlr5ydjF8hT
 Ixo9PwIDOlWiBi6IwJRt1yWsswtNFOcDhor3boFL+e19jjbwmgCXqejbwb74KtK7
 C5xcECzC8uHOuukn3Q0cZbKqpc+x9Nc98FnA44n9Ht+eoi/svEAYVeJuk1PJNGnA
 viAv0DJ8QUP2OLYrMmuOPReg5+n/RL7i9rNXJvcBQDmRUOVmMPQh
 =kjVk
 -----END PGP SIGNATURE-----

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

Pull arm64 fixes from Will Deacon:
 "There's more here than I would ideally like at this stage, but there's
  been a steady trickle of fixes and some of them took a few rounds of
  review.

  The bulk of the changes are fixing some fallout from the recent BBM
  level two support which allows the linear map to be split from block
  to page mappings at runtime, but inadvertently led to sleeping in
  atomic context on some paths where the linear map was already mapped
  with page granularity. The fix is simply to avoid splitting in those
  cases but the implementation of that is a little involved.

  The other interesting fix is addressing a catastophic performance
  issue with our per-cpu atomics discovered by Paul in the SRCU locking
  code but which took some interactions with the hardware folks to
  resolve.

  Summary:

   - Avoid sleeping in atomic context when changing linear map
     permissions for DEBUG_PAGEALLOC or KFENCE

   - Rework printing of Spectre mitigation status to avoid hardlockup
     when enabling per-task mitigations on the context-switch path

   - Reject kernel modules when instruction patching fails either due to
     the DWARF-based SCS patching or because of an alternatives callback
     residing outside of the core kernel text

   - Propagate error when updating kernel memory permissions in kprobes

   - Drop pointless, incorrect message when enabling the ACPI SPCR
     console

   - Use value-returning LSE instructions for per-cpu atomics to reduce
     latency in SRCU locking routines"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: Reject modules with internal alternative callbacks
  arm64: Fail module loading if dynamic SCS patching fails
  arm64: proton-pack: Fix hard lockup due to print in scheduler context
  arm64: proton-pack: Drop print when !CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY
  arm64: mm: Tidy up force_pte_mapping()
  arm64: mm: Optimize range_split_to_ptes()
  arm64: mm: Don't sleep in split_kernel_leaf_mapping() when in atomic context
  arm64: kprobes: check the return value of set_memory_rox()
  arm64: acpi: Drop message logging SPCR default console
  Revert "ACPI: Suppress misleading SPCR console message when SPCR table is absent"
  arm64: Use load LSE atomics for the non-return per-CPU atomic operations
2025-11-11 10:31:17 -08:00
..
pi arm64: Fail module loading if dynamic SCS patching fails 2025-11-07 15:00:09 +00:00
probes arm64: kprobes: check the return value of set_memory_rox() 2025-11-07 14:30:22 +00:00
vdso stackleak: Split KSTACK_ERASE_CFLAGS from GCC_PLUGINS_CFLAGS 2025-07-21 21:40:57 -07:00
vdso32 Updates for the VDSO subsystem: 2025-09-30 16:58:21 -07:00
.gitignore
Makefile arm64 updates for 6.17: 2025-07-29 20:21:54 -07:00
Makefile.syscalls syscalls: fix syscall macros for newfstat/newfstatat 2024-08-02 15:20:47 +02:00
acpi.c arm64: acpi: Drop message logging SPCR default console 2025-11-07 14:23:33 +00:00
acpi_numa.c arm64: ACPI: NUMA: initialize all values of acpi_early_node_map to NUMA_NO_NODE 2024-08-14 17:51:39 +01:00
acpi_parking_protocol.c arm64: smp: Remove dedicated wakeup IPI 2023-09-25 17:15:28 +01:00
alternative.c arm64: Reject modules with internal alternative callbacks 2025-11-07 15:00:14 +00:00
armv8_deprecated.c sysctl: treewide: constify the ctl_table argument of proc_handlers 2024-07-24 20:59:29 +02:00
asm-offsets.c arch: Add the macro COMPILE_OFFSETS to all the asm-offsets.c 2025-09-25 09:57:15 +02:00
cacheinfo.c arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array 2025-02-07 09:57:56 +00:00
compat_alignment.c arm64: Don't call NULL in do_compat_alignment_fixup() 2025-04-01 14:13:11 +01:00
cpu-reset.S arm64: kernel: remove SHF_WRITE|SHF_EXECINSTR from .idmap.text 2023-05-02 12:42:22 +01:00
cpu_errata.c arm64: errata: Apply workarounds for Neoverse-V3AE 2025-09-22 11:27:14 +01:00
cpu_ops.c
cpufeature.c arm64: proton-pack: Fix hard lockup due to print in scheduler context 2025-11-07 14:49:12 +00:00
cpuinfo.c arm64/hwcap: Add hwcap for FEAT_LSFE 2025-09-16 19:55:11 +01:00
crash_dump.c vmcore: convert copy_oldmem_page() to take an iov_iter 2022-04-29 14:37:59 -07:00
debug-monitors.c arm64 updates for 6.18 2025-09-29 18:48:39 -07:00
efi-header.S include: pe.h: Fix PE definitions 2025-05-21 16:46:37 +02:00
efi-rt-wrapper.S arm64: efi: Avoid workqueue to check whether EFI runtime is live 2023-01-16 15:27:31 +01:00
efi.c arm64: efi: Remove CONFIG_VMAP_STACK check 2025-07-08 13:41:08 +01:00
elfcore.c fs: avoid mmap sem relocks when coredumping with many missing pages 2025-02-21 10:25:32 +01:00
entry-common.c arm64: debug: always unmask interrupts in el0_softstp() 2025-10-17 18:08:05 +01:00
entry-fpsimd.S arm64/sme: Implement context switching for ZT0 2023-01-20 12:23:06 +00:00
entry-ftrace.S fgraph: Replace fgraph_ret_regs with ftrace_regs 2024-12-26 10:50:02 -05:00
entry.S arm64 updates for 6.17: 2025-07-29 20:21:54 -07:00
fpsimd.c arm64/fpsimd: simplify sme_setup() 2025-09-16 21:05:48 +01:00
ftrace.c arm64: ftrace: fix unreachable PLT for ftrace_caller in init_module with CONFIG_DYNAMIC_FTRACE 2025-09-05 16:56:20 +01:00
head.S arm64/boot: Move init_pgdir[] and init_idmap_pgdir[] into __pi_ namespace 2025-05-16 16:05:21 +01:00
hibernate-asm.S arm64: kexec: install a copy of the linear-map 2021-10-01 13:31:00 +01:00
hibernate.c hugetlb: arm64: add mte support 2024-10-16 14:50:47 +01:00
hw_breakpoint.c arm64: debug: split hardware watchpoint exception entry 2025-07-08 13:27:42 +01:00
hyp-stub.S arm64: errata: Work around AmpereOne's erratum AC04_CPU_23 2025-05-19 12:46:26 +01:00
idle.c arm64: idle: Tag the arm64 idle functions as __cpuidle 2023-09-25 17:15:28 +01:00
image-vars.h KVM: arm64: Don't access ICC_SRE_EL2 if GICv3 doesn't support v2 compatibility 2025-09-17 17:40:42 +01:00
image.h
io.c arm64: Use new fallback IO memcpy/memset 2024-10-28 21:44:29 +00:00
irq.c arm64: remove CONFIG_VMAP_STACK conditionals from irq stack setup 2025-07-08 13:41:08 +01:00
jump_label.c asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
kaslr.c arm64/mm: Remove randomization of the linear map 2025-04-29 13:21:49 +01:00
kexec_image.c kexec_file, arm64: print out debugging message if required 2023-12-20 15:02:57 -08:00
kgdb.c arm64: debug: call step handlers statically 2025-07-08 13:27:41 +01:00
kuser32.S arm64: Update Documentation/arm references 2023-06-12 06:33:48 -06:00
machine_kexec.c kexec: Consolidate machine_kexec_mask_interrupts() implementation 2024-12-11 20:32:34 +01:00
machine_kexec_file.c arm64: kexec: initialize kexec_buf struct in load_other_segments() 2025-09-03 17:10:37 -07:00
module-plts.c arm64: ftrace: fix unreachable PLT for ftrace_caller in init_module with CONFIG_DYNAMIC_FTRACE 2025-09-05 16:56:20 +01:00
module.c arm64: Reject modules with internal alternative callbacks 2025-11-07 15:00:14 +00:00
mte.c mm/huge_memory: initialise the tags of the huge zero folio 2025-11-09 21:19:46 -08:00
paravirt.c arm64: paravirt: remove conduit check in has_pv_steal_clock 2022-11-09 18:11:56 +00:00
patching.c arm64: patching: avoid early page_to_phys() 2024-12-03 18:05:42 +00:00
pci.c arm64: PCI: Migrate ACPI related functions to pci-acpi.c 2024-08-27 15:48:34 +02:00
perf_callchain.c perf/core: Correct perf sampling with guest VMs 2024-11-14 10:40:01 +01:00
perf_regs.c perf: arm64: Add SVE vector granule register to user regs 2022-09-22 15:06:02 +01:00
pointer_auth.c arm64: move preemption disablement to prctl handlers 2021-07-28 18:33:49 +01:00
process.c arch: copy_thread: pass clone_flags as u64 2025-09-01 15:31:34 +02:00
proton-pack.c arm64: proton-pack: Fix hard lockup due to print in scheduler context 2025-11-07 14:49:12 +00:00
psci.c arm64: psci: Ignore DENIED CPUs 2024-06-28 18:38:31 +01:00
ptrace.c execve updates for v6.17 2025-07-28 17:11:40 -07:00
reloc_test_core.c ARM64: reloc_test: add missing MODULE_DESCRIPTION() macro 2024-06-13 10:23:54 +01:00
reloc_test_syms.S
relocate_kernel.S arm64: kexec: load from kimage prior to clobbering 2022-05-17 14:25:35 +01:00
return_address.c arm64: Make return_address() use arch_stack_walk() 2021-12-10 14:06:04 +00:00
rsi.c arm64: realm: ioremap: Allow mapping memory as encrypted 2025-09-19 10:12:01 +01:00
sdei.c arm64: ptrace: Replace interrupts_enabled() with regs_irqs_disabled() 2025-09-11 15:55:34 +01:00
setup.c arm64: map [_text, _stext) virtual address range non-executable+read-only 2025-09-22 11:58:17 +01:00
signal.c arm64: entry: Switch to generic IRQ entry 2025-09-11 15:55:35 +01:00
signal32.c arm64/fpsimd: signal32: Always save+flush state early 2025-04-09 18:06:31 +01:00
sigreturn32.S arm64: rework compat syscall macros 2024-07-10 14:23:38 +02:00
sleep.S arm64: mm: Handle LVA support as a CPU feature 2024-02-16 12:42:36 +00:00
smccc-call.S arm64: smccc: Remove broken support for SMCCCv1.3 SVE discard hint 2024-11-07 11:18:52 +00:00
smp.c KVM/arm64 changes for 6.17, round #1 2025-07-29 12:27:40 -04:00
smp_spin_table.c treewide: Drop function_nocfi 2022-09-26 10:13:14 -07:00
stacktrace.c Merge branches 'for-next/livepatch', 'for-next/user-contig-bbml2', 'for-next/misc', 'for-next/acpi', 'for-next/debug-entry', 'for-next/feat_mte_tagged_far', 'for-next/kselftest', 'for-next/mdscr-cleanup' and 'for-next/vmap-stack', remote-tracking branch 'arm64/for-next/perf' into for-next/core 2025-07-24 16:01:22 +01:00
suspend.c arm64/sme: Restore SME registers on exit from suspend 2024-02-20 12:19:15 +00:00
sys.c arm64: generate 64-bit syscall.tbl 2024-07-10 14:23:38 +02:00
sys32.c arm64: convert unistd_32.h to syscall.tbl format 2024-07-10 14:23:38 +02:00
sys_compat.c arm64: Avoid cpus_have_const_cap() for ARM64_WORKAROUND_1542419 2023-10-16 14:17:06 +01:00
syscall.c arm/syscalls: mark syscall invocation as likely in invoke_syscall 2025-09-22 13:26:16 +01:00
time.c arm64: Make profile_pc() use arch_stack_walk() 2021-12-10 14:06:04 +00:00
topology.c Merge branch 'for-next/smt-control' into for-next/core 2025-03-25 19:32:28 +00:00
trace-events-emulation.h tracing/treewide: Remove second parameter of __assign_str() 2024-05-22 20:14:47 -04:00
traps.c guest_memfd: 2025-10-04 08:52:16 -07:00
vdso-wrap.S
vdso.c mseal sysmap: enable arm64 2025-04-01 15:17:15 -07:00
vdso32-wrap.S
vmcore_info.c crash: split vmcoreinfo exporting code out from crash_core.c 2024-02-23 17:48:22 -08:00
vmlinux.lds.S ARM: 2025-05-29 08:10:01 -07:00
watchdog_hld.c arm64/watchdog_hld: Add a cpufreq notifier for update watchdog thresh 2025-07-04 13:17:30 +01:00