linux-yocto/arch/loongarch/include/asm
Bibo Mao 1c73128437 LoongArch: KVM: Fix VM migration failure with PTW enabled
commit f58c9aa1065f73d243904b267c71f6a9d1e9f90e upstream.

With PTW disabled system, bit _PAGE_DIRTY is a HW bit for page writing.
However with PTW enabled system, bit _PAGE_WRITE is also a "HW bit" for
page writing, because hardware synchronizes _PAGE_WRITE to _PAGE_DIRTY
automatically. Previously, _PAGE_WRITE is treated as a SW bit to record
the page writeable attribute for the fast page fault handling in the
secondary MMU, however with PTW enabled machine, this bit is used by HW
already (so setting it will silence the TLB modify exception).

Here define KVM_PAGE_WRITEABLE with the SW bit _PAGE_MODIFIED, so that
it can work on both PTW disabled and enabled machines. And for HW write
bits, both _PAGE_DIRTY and _PAGE_WRITE are set or clear together.

Cc: stable@vger.kernel.org
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-09-25 11:16:48 +02:00
..
vdso LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
acenv.h LoongArch: Align ACPI structures if ARCH_STRICT_ALIGN enabled 2025-09-25 11:16:47 +02:00
acpi.h LoongArch: Increase max supported CPUs up to 2048 2025-05-30 21:45:43 +08:00
addrspace.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
alternative-asm.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
alternative.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
asm-extable.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
asm-offsets.h
asm-prototypes.h LoongArch: entry: Migrate ret_from_fork() to C 2025-04-29 08:27:10 +02:00
asm.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
asmmacro.h LoongArch: Add support for relocating the kernel with RELR relocation 2024-07-20 22:41:07 +08:00
atomic.h LoongArch: Improve hardware page table walker 2024-09-24 15:32:20 +08:00
barrier.h LoongArch: Support dbar with different hints 2023-06-29 20:58:44 +08:00
bitops.h
bitrev.h
bootinfo.h LoongArch: Get correct cores_per_package for SMT systems 2024-10-21 22:11:18 +08:00
branch.h
bug.h objtool: Fix ANNOTATE_REACHABLE to be a normal annotation 2024-12-02 12:01:44 +01:00
cache.h LoongArch: Increase ARCH_DMA_MINALIGN up to 16 2025-03-30 16:31:09 +08:00
cacheflush.h LoongArch: Remove superfluous flush_dcache_page() definition 2024-03-19 15:50:34 +08:00
cacheops.h
checksum.h
clocksource.h
cmpxchg.h
cpu-features.h LoongArch: Rework CPU feature probe from CPUCFG/IOCSR 2024-09-24 15:32:20 +08:00
cpu-info.h LoongArch: Remove the deprecated notifier hook mechanism 2025-02-13 12:02:40 +08:00
cpu.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
cpufeature.h
crash_reserve.h LoongArch: Fix Kconfig item and left code related to CRASH_CORE 2024-04-24 12:36:07 +08:00
delay.h
dma.h
dmi.h
efi.h efi/loongarch: Directly position the loaded image file 2023-12-19 11:16:37 +01:00
elf.h LoongArch: Fix and simplify fcsr initialization on execve() 2024-01-17 12:43:08 +08:00
entry-common.h LoongArch: Enable HAVE_ARCH_STACKLEAK 2025-05-30 21:45:42 +08:00
exception.h LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
exec.h
extable.h
fixmap.h
fpregdef.h LoongArch: Prepare for assemblers with proper FCSR class support 2023-06-29 20:58:43 +08:00
fprobe.h fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
fpu.h LoongArch: Handle fp, lsx, lasx and lbt assembly symbols 2025-04-26 09:58:12 +08:00
ftrace.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
futex.h
gpr-num.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
hardirq.h LoongArch: Architectural preparation for AVEC irqchip 2024-08-23 20:40:27 +02:00
hugetlb.h mm: hugetlb: Add huge page size param to huge_ptep_get_and_clear() 2025-02-27 17:40:57 +00:00
hw_breakpoint.h LoongArch: Change 8 to 14 for LOONGARCH_MAX_{BRP,WRP} 2025-01-26 21:49:59 +08:00
hw_irq.h LoongArch: Define ARCH_IRQ_INIT_FLAGS as IRQ_NOPROBE 2024-08-26 23:11:32 +08:00
idle.h
inst.h LoongArch: BPF: Adjust the parameter of emit_jirl() 2024-12-02 16:42:08 +08:00
io.h mm/ioremap: pass pgprot_t to ioremap_prot() instead of unsigned long 2025-03-16 22:06:23 -07:00
irq_regs.h
irq_work.h LoongArch: Add irq_work support via self IPIs 2024-07-20 22:40:58 +08:00
irq.h LoongArch: Increase MAX_IO_PICS up to 8 2025-03-30 16:31:09 +08:00
irqflags.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
jump_label.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
kasan.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
Kbuild asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
kdebug.h LoongArch: Remove five DIE_* definitions in kdebug.h 2023-06-29 20:58:44 +08:00
kexec.h
kfence.h LoongArch: Use accessors to page table entries instead of direct dereference 2024-08-07 17:37:11 +08:00
kgdb.h LoongArch: Add basic KGDB & KDB support 2023-09-06 22:53:55 +08:00
kprobes.h LoongArch: Use larch_insn_gen_break() for kprobes 2023-06-29 20:58:44 +08:00
kvm_csr.h LoongArch: KVM: Add PMU support for guest 2024-09-12 20:53:40 +08:00
kvm_eiointc.h LoongArch: KVM: Add EIOINTC read and write functions 2024-11-13 16:18:27 +08:00
kvm_host.h LoongArch: KVM: Do not flush tlb if HW PTW supported 2025-05-20 20:20:18 +08:00
kvm_ipi.h LoongArch: KVM: Add IPI read and write function 2024-11-13 16:18:27 +08:00
kvm_mmu.h LoongArch: KVM: Fix VM migration failure with PTW enabled 2025-09-25 11:16:48 +02:00
kvm_para.h LoongArch: KVM: Add hypercall service support for usermode VMM 2025-01-13 21:37:17 +08:00
kvm_pch_pic.h LoongArch: KVM: Add PCHPIC read and write functions 2024-11-13 16:18:27 +08:00
kvm_types.h LoongArch: KVM: Add kvm related header files 2023-10-02 10:01:20 +08:00
kvm_vcpu.h LoongArch: KVM: Add ecode parameter for exception handlers 2025-05-20 20:20:18 +08:00
lbt.h LoongArch: Handle fp, lsx, lasx and lbt assembly symbols 2025-04-26 09:58:12 +08:00
linkage.h LoongArch: Use SYM_CODE_* to annotate exception handlers 2023-10-18 08:42:52 +08:00
local.h locking/local, arch: Rewrite local_add_unless() as a static inline function 2023-10-04 11:38:11 +02:00
loongarch.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
loongson.h
mmu_context.h LoongArch: Improve hardware page table walker 2024-09-24 15:32:20 +08:00
mmu.h
module.h LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
module.lds.h
numa.h LoongArch: Introduce the numa_memblks conversion 2025-05-30 21:45:43 +08:00
orc_header.h LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
orc_lookup.h LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
orc_types.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
page.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
paravirt_api_clock.h LoongArch: KVM: Add PV IPI support on guest side 2024-05-06 22:00:47 +08:00
paravirt.h LoongArch: Revert qspinlock to test-and-set simple lock on VM 2024-09-11 23:26:32 +08:00
pci.h
percpu.h LoongArch: Simplify _percpu_read() and _percpu_write() 2024-09-24 15:32:20 +08:00
perf_event.h LoongArch: Fix callchain parse error with kernel tracepoint events again 2024-05-14 12:24:18 +08:00
pgalloc.h mm: pass mm down to pagetable_{pte,pmd}_ctor 2025-05-11 17:48:21 -07:00
pgtable-bits.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
pgtable.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
prefetch.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
processor.h LoongArch: Add Loongson Binary Translation (LBT) extension support 2023-09-06 22:53:55 +08:00
ptrace.h LoongArch: Fix MAX_REG_OFFSET calculation 2025-05-14 22:17:43 +08:00
qspinlock.h LoongArch: Revert qspinlock to test-and-set simple lock on VM 2024-09-11 23:26:32 +08:00
regdef.h
seccomp.h
serial.h
set_memory.h arch: introduce set_direct_map_valid_noflush() 2024-11-07 14:25:15 -08:00
setup.h LoongArch: Add support for relocating the kernel with RELR relocation 2024-07-20 22:41:07 +08:00
smp.h LoongArch: Handle KCOV __init vs inline mismatches 2025-06-26 20:07:18 +08:00
sparsemem.h LoongArch: Introduce the numa_memblks conversion 2025-05-30 21:45:43 +08:00
spinlock_types.h
spinlock.h
stackframe.h LoongArch: Enable HAVE_ARCH_STACKLEAK 2025-05-30 21:45:42 +08:00
stackprotector.h
stacktrace.h LoongArch: Enable HAVE_ARCH_STACKLEAK 2025-05-30 21:45:42 +08:00
string.h LoongArch: Add KASAN (Kernel Address Sanitizer) support 2023-09-06 22:54:16 +08:00
suspend.h LoongArch: Export some arch-specific pm interfaces 2023-06-29 20:58:44 +08:00
switch_to.h LoongArch: Add Loongson Binary Translation (LBT) extension support 2023-09-06 22:53:55 +08:00
syscall.h syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
thread_info.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
time.h
timex.h
tlb.h LoongArch: Fix a build error due to __tlb_remove_tlb_entry() 2024-04-24 12:36:07 +08:00
tlbflush.h
topology.h LoongArch: Introduce the numa_memblks conversion 2025-05-30 21:45:43 +08:00
types.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
uaccess.h
unistd.h LoongArch: Define __ARCH_WANT_NEW_STAT in unistd.h 2024-07-20 22:40:58 +08:00
unwind_hints.h LoongArch: Replace __ASSEMBLY__ with __ASSEMBLER__ in headers 2025-06-26 20:07:10 +08:00
unwind.h LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
uprobes.h LoongArch: uprobes: Remove redundant code about resume_era 2025-05-14 22:18:10 +08:00
vdso.h LoongArch: vDSO: Switch to generic storage implementation 2025-02-21 09:54:02 +01:00
vermagic.h
video.h arch: Rename fbdev header and source files 2024-05-03 17:07:50 +02:00
vmalloc.h
xor_simd.h LoongArch: Add SIMD-optimized XOR routines 2023-09-06 22:53:55 +08:00
xor.h LoongArch: Add SIMD-optimized XOR routines 2023-09-06 22:53:55 +08:00