linux/arch/x86/xen
Juergen Gross 4594437880 x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving
With the support of nested lazy mmu sections it can happen that
arch_enter_lazy_mmu_mode() is being called twice without a call of
arch_leave_lazy_mmu_mode() in between, as the lazy_mmu_*() helpers
are not disabling preemption when checking for nested lazy mmu
sections.

This is a problem when running as a Xen PV guest, as
xen_enter_lazy_mmu() and xen_leave_lazy_mmu() don't tolerate this
case.

Fix that in xen_enter_lazy_mmu() and xen_leave_lazy_mmu() in order
not to hurt all other lazy mmu mode users.

Fixes: 291b3abed6 ("x86/xen: use lazy_mmu_state when context-switching")
Tested-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Message-ID: <20260508143933.493013-1-jgross@suse.com>
2026-05-14 18:33:05 +02:00
..
apic.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
debugfs.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
efi.c xen/efi: refactor deprecated strncpy 2023-09-19 07:04:49 +02:00
enlighten_hvm.c x86/acpi: Add acpi_get_cpu_uid() for unified ACPI CPU UID retrieval 2026-04-06 16:55:15 +02:00
enlighten_pv.c Miscellaneous x86 cleanups for v7.1: 2026-04-14 14:03:27 -07:00
enlighten_pvh.c x86/xen: disable CPU idle and frequency drivers for PVH dom0 2025-04-08 13:15:56 +02:00
enlighten.c Partial revert "x86/xen: fix balloon target initialization for PVH dom0" 2026-02-02 07:31:22 +01:00
grant-table.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
irq.c x86/xen: Drop xen_irq_ops 2026-01-12 19:37:38 +01:00
Kconfig x86/xen: select HIBERNATE_CALLBACKS more directly 2025-09-08 20:10:20 +02:00
Makefile x86/PVH: obtain VGA console info in Dom0 2023-03-14 15:20:51 +01:00
mmu_hvm.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
mmu_pv.c x86/xen: Tolerate nested XEN_LAZY_MMU entering/leaving 2026-05-14 18:33:05 +02:00
mmu.c xen: replace XENFEAT_auto_translated_physmap with xen_pv_domain() 2025-09-08 17:01:36 +02:00
multicalls.c xen: fix multicall debug feature 2025-04-11 09:44:50 +02:00
p2m.c xen: replace XENFEAT_auto_translated_physmap with xen_pv_domain() 2025-09-08 17:01:36 +02:00
platform-pci-unplug.c
pmu.c x86/msr: Change the function type of native_read_msr_safe() 2025-05-02 10:36:36 +02:00
setup.c x86/xen: Fix xen_e820_swap_entry_with_ram() 2026-05-14 18:33:05 +02:00
smp_hvm.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
smp_pv.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smp.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
spinlock.c x86/pvlocks: Move paravirt spinlock functions into own header 2026-01-13 14:57:45 +01:00
suspend_hvm.c x86/xen: Add support for HVMOP_set_evtchn_upcall_vector 2022-08-12 11:28:21 +02:00
suspend_pv.c
suspend.c x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
time.c x86/paravirt: Move paravirt_sched_clock() related code into tsc.c 2026-01-12 18:47:39 +01:00
trace.c
vga.c x86: Do not include <asm/bootparam.h> in several files 2024-01-30 15:17:24 +01:00
xen-asm.S objtool, xen: Fix INSN_SYSCALL / INSN_SYSRET semantics 2025-04-08 09:14:12 +02:00
xen-head.S Merge branch 'x86/asm' into x86/core, to pick up dependent commits 2025-03-04 20:29:35 +01:00
xen-ops.h x86/cpufeature: Replace X86_FEATURE_SYSENTER32 with X86_FEATURE_SYSFAST32 2026-01-13 16:37:58 -08:00