linux/Documentation/arch/arm64
Fuad Tabba 2bc6b21871 arm64/boot: Disable trapping of PMZR_EL0 writes to EL2
__init_el2_fgt2() writes one mask to both HDFGRTR2_EL2 and HDFGWTR2_EL2.
PMZR_EL0 is write-only, so its trap bit, nPMZR_EL0, exists only in
HDFGWTR2_EL2 and is therefore never set: a PMZR_EL0 write from the host
traps to EL2, where the nVHE hypervisor has no handler and BUG()s. The
kernel never writes PMZR_EL0, but kernel.perf_user_access=1 has the PMU
driver set PMUSERENR_EL0.UEN for a task with a user-read event, so a
write from EL0 reaches the trap and takes the host down without a panic
message.

Accumulate the HDFGWTR2_EL2 bits separately, as __init_el2_fgt() already
does for HDFGWTR_EL2, and set nPMZR_EL0 with the other FEAT_PMUv3p9
bits.

Fixes: 858c7bfcb3 ("arm64/boot: Enable EL2 requirements for FEAT_PMUv3p9")
Cc: stable@vger.kernel.org
Signed-off-by: Fuad Tabba <fuad.tabba@linux.dev>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Reviewed-by: Oliver Upton <oupton@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
History 2026-09-23 12:34:30 +00:00
..
acpi_object_usage.rst Documentation: Fix typos 2023-08-18 11:29:03 -06:00
amu.rst Docs/arch/arm64: Fix spelling in amu.rst 2025-03-04 09:37:44 -07:00
arm-acpi.rst docs: fix 're-use' -> 'reuse' in documentation 2026-02-02 09:54:15 -07:00
arm-cca.rst arm64: Document Arm Confidential Compute 2024-10-23 10:19:33 +01:00
asymmetric-32bit.rst sched/arm64: Move fallback task cpumask to HK_TYPE_DOMAIN 2026-02-03 15:23:35 +01:00
booting.rst arm64/boot: Disable trapping of PMZR_EL0 writes to EL2 2026-09-23 12:34:30 +00:00
cpu-feature-registers.rst arm64: fix cpu-feature-registers Malformed table 2026-07-28 10:28:33 +00:00
cpu-hotplug.rst cpu/hotplug: Fix NULL kobject warning in cpuhp_smt_enable() 2026-06-29 11:47:36 +01:00
elf_hwcaps.rst arm64: Document SVE constraints on new hwcaps 2026-06-03 12:49:21 +01:00
features.rst docs: kernel_feat.py: fix potential command injection 2024-01-11 09:21:01 -07:00
gcs.rst arm64/gcs: Fix documentation for HWCAP 2025-02-04 12:26:26 +00:00
hugetlbpage.rst docs: arm64: Move arm64 documentation under Documentation/arch/ 2023-06-21 08:51:51 -06:00
index.rst arm64: mpam: Add initial MPAM documentation 2026-03-27 15:32:52 +00:00
kasan-offsets.sh docs: arm64: Move arm64 documentation under Documentation/arch/ 2023-06-21 08:51:51 -06:00
kdump.rst Move the arm64 architecture documentation under Documentation/arch/. This 2023-06-27 21:52:15 -07:00
legacy_instructions.rst docs: arm64: Move arm64 documentation under Documentation/arch/ 2023-06-21 08:51:51 -06:00
memory-tagging-extension.rst arm64: mte: Fix PTRACE_{PEEK,POKE}MTETAGS error documentation 2026-09-11 12:50:02 +00:00
memory.rst Documentation: arm64: Remove stale and redundant virtual memory diagrams 2025-01-13 16:40:30 +00:00
mops.rst arm64: mops: Document requirements for hypervisors 2024-11-01 14:52:24 +00:00
mpam.rst arm64: mpam: Add memory bandwidth usage (MBWU) documentation 2026-08-02 09:33:43 +00:00
perf.rst Documentation: arm64: Document the PMU event counting threshold feature 2023-12-12 09:46:23 +00:00
pointer-authentication.rst docs: arm64: Move arm64 documentation under Documentation/arch/ 2023-06-21 08:51:51 -06:00
ptdump.rst docs: arm64: drop PTDUMP config options from ptdump.rst 2025-03-17 00:05:31 -07:00
silicon-errata.rst pci-v7.3-changes 2026-08-23 12:44:10 -07:00
sme.rst arm64/sme: Drop inaccurate documentation of streaming mode switches 2025-09-08 13:25:38 +01:00
sve.rst arm64/sme: Support disabling streaming mode via ptrace on SME only systems 2025-11-17 20:11:54 +00:00
tagged-address-abi.rst docs: arm64: Move arm64 documentation under Documentation/arch/ 2023-06-21 08:51:51 -06:00
tagged-pointers.rst arm64: Report address tag when FEAT_MTE_TAGGED_FAR is supported 2025-07-02 17:44:17 +01:00