linux/arch/arm64/include/asm
Steven Price f0376edb1d KVM: arm64: Add ioctl to fetch/store tags in a guest
The VMM may not wish to have it's own mapping of guest memory mapped
with PROT_MTE because this causes problems if the VMM has tag checking
enabled (the guest controls the tags in physical RAM and it's unlikely
the tags are correct for the VMM).

Instead add a new ioctl which allows the VMM to easily read/write the
tags from guest memory, allowing the VMM's mapping to be non-PROT_MTE
while the VMM can still read/write the tags for the purpose of
migration.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Steven Price <steven.price@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210621111716.37157-6-steven.price@arm.com
2021-06-22 14:08:06 +01:00
..
vdso powerpc updates for 5.13 2021-04-30 12:22:28 -07:00
xen xen/arm: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped 2021-04-23 11:33:50 +02:00
acenv.h
acpi.h arm64/acpi: disallow AML memory opregions to access kernel memory 2020-07-14 18:02:03 +01:00
alternative-macros.h arm64: alternatives: Move length validation in alternative_{insn, endif} 2021-04-15 18:33:25 +01:00
alternative.h arm64: alternatives: Split up alternative.h 2020-11-09 21:49:34 +00:00
arch_gicv3.h arm64: Always keep DAIF.[IF] in sync 2021-03-24 20:19:30 +00:00
arch_timer.h arm64: vdso: Avoid ISB after reading from cntvct_el0 2021-03-24 16:48:41 +00:00
archrandom.h arm64: Add support for SMCCC TRNG entropy source 2021-01-21 17:42:46 +00:00
arm_dsu_pmu.h
arm-cci.h
asm_pointer_auth.h arm64: pac: Optimize kernel entry/exit key installation code paths 2021-04-13 17:31:44 +01:00
asm-bug.h
asm-offsets.h
asm-prototypes.h
asm-uaccess.h arm64: vmlinux.ld.S: add assertion for reserved_pg_dir offset 2021-02-03 20:43:45 +00:00
assembler.h ARM: 2021-05-01 10:14:08 -07:00
atomic_ll_sc.h arm64: Move the LSE gas support detection to Kconfig 2020-01-15 12:50:48 +00:00
atomic_lse.h arm64: lse: fix LSE atomics with LLVM's integrated assembler 2020-01-16 17:25:10 +00:00
atomic.h arm64: make atomic helpers __always_inline 2021-01-13 15:09:06 +00:00
barrier.h arm64: Fix stale link in the arch_counter_enforce_ordering() comment 2021-05-18 10:47:13 +01:00
bitops.h
bitrev.h
boot.h arm64: get rid of TEXT_OFFSET 2020-09-07 15:00:52 +01:00
brk-imm.h arm64: kprobes: Use BRK instead of single-step when executing instructions out-of-line 2020-11-03 14:03:38 +00:00
bug.h
cache.h arm64: kasan: simplify and inline MTE functions 2021-02-26 09:41:03 -08:00
cacheflush.h arm64: cacheflush: Remove stale comment 2021-01-26 23:40:23 +00:00
checksum.h arm64: csum: cast to the proper type 2021-03-15 10:57:21 +00:00
clocksource.h arm64: Introduce asm/vdso/clocksource.h 2020-03-21 15:23:55 +01:00
cmpxchg.h arm64: fix unreachable code issue with cmpxchg 2019-09-17 12:11:50 +01:00
compat.h compat: lift compat_s64 and compat_u64 to <asm-generic/compat.h> 2020-09-17 13:00:46 -04:00
compiler.h arm64: use a common .arch preamble for inline assembly 2020-08-28 11:15:15 +01:00
cpu_ops.h arm64: fix some spelling mistakes in the comments by codespell 2020-09-07 14:18:50 +01:00
cpu.h Revert "arm64: initialize per-cpu offsets earlier" 2020-10-09 11:24:17 +01:00
cpufeature.h arm64: cpufeature: Allow early filtering of feature override 2021-04-08 18:45:16 +01:00
cpuidle.h
cputype.h arm64: cputype: Add CPU implementor & types for the Apple M1 cores 2021-04-08 20:18:38 +09:00
current.h
daifflags.h arm64: entry: always set GIC_PRIO_PSR_I_SET during entry 2021-05-05 18:13:58 +01:00
dcc.h
debug-monitors.h arm64: kprobes: Use BRK instead of single-step when executing instructions out-of-line 2020-11-03 14:03:38 +00:00
device.h arm64: Remove dev->archdata.iommu pointer 2020-06-30 11:59:49 +02:00
dmi.h
efi.h efi: stub: get rid of efi_get_max_fdt_addr() 2020-12-09 08:37:27 +01:00
el2_setup.h ARM: 2021-05-01 10:14:08 -07:00
elf.h Split the old READ_IMPLIES_EXEC workaround from executable PT_GNU_STACK 2020-06-05 13:45:21 -07:00
esr.h arm64: mte: add in-kernel MTE helpers 2020-12-22 12:55:07 -08:00
exception.h arm64: entry: suppress W=1 prototype warnings 2020-12-15 12:38:02 +00:00
exec.h arm64: uaccess: remove set_fs() 2020-12-02 19:49:11 +00:00
extable.h arm64: Improve diagnostics when trapping BRK with FAULT_BRK_IMM 2020-09-18 16:35:54 +01:00
fb.h
fixmap.h arm64/fixmap: make notes of fixed_addresses more precisely 2020-08-08 19:25:04 +01:00
fpsimd.h ARM: 2021-05-01 10:14:08 -07:00
fpsimdmacros.h KVM: arm64: Rework SVE host-save/guest-restore 2021-03-18 13:57:37 +00:00
ftrace.h arm64: implement ftrace with regs 2019-11-06 14:17:35 +00:00
futex.h arm64: uaccess: rename privileged uaccess routines 2020-12-02 19:49:10 +00:00
hardirq.h arm64: irqstat: Get rid of duplicated declaration 2020-11-23 10:31:05 +01:00
hugetlb.h arm64/hugetlb: Reserve CMA areas for gigantic pages on 16K and 64K configs 2020-07-15 13:38:03 +01:00
hw_breakpoint.h
hwcap.h Merge branch 'for-next/mte' into for-next/core 2020-10-02 12:16:11 +01:00
hyp_image.h KVM: arm64: Allow using kvm_nvhe_sym() in hyp code 2021-03-19 12:01:20 +00:00
hypervisor.h arm/arm64: Probe for the presence of KVM hypervisor 2021-03-31 09:16:55 +01:00
image.h
insn.h arm64: alternatives: Split up alternative.h 2020-11-09 21:49:34 +00:00
io.h asm-generic/io.h: implement pci_remap_cfgspace using ioremap_np 2021-04-08 20:18:38 +09:00
irq_work.h arm64: smp: Add missing prototype for some smp.c functions 2021-03-29 10:41:42 +01:00
irq.h arm64: irq: allow FIQs to be handled 2021-03-24 20:19:30 +00:00
irqflags.h arm64: Always keep DAIF.[IF] in sync 2021-03-24 20:19:30 +00:00
jump_label.h
kasan.h arm64: kasan: simplify and inline MTE functions 2021-02-26 09:41:03 -08:00
Kbuild arm64: Generate cpucaps.h 2021-05-10 10:16:37 +01:00
kernel-pgtable.h arm64: Force SPARSEMEM_VMEMMAP as the only memory management model 2021-04-23 14:18:21 +01:00
kexec.h arm64: Use ELF fields defined in 'struct kimage' 2021-03-08 12:06:28 -07:00
kfence.h kfence: use pt_regs to generate stack trace on faults 2021-02-26 09:41:02 -08:00
kgdb.h
kprobes.h arm64: kprobes: Remove redundant kprobe_step_ctx 2020-11-10 17:12:30 +00:00
kvm_arm.h KVM: arm64: Save/restore MTE registers 2021-06-22 14:08:05 +01:00
kvm_asm.h KVM: arm64: Commit pending PC adjustemnts before returning to userspace 2021-05-15 10:27:59 +01:00
kvm_emulate.h KVM: arm64: Introduce MTE VM feature 2021-06-22 14:08:05 +01:00
kvm_host.h KVM: arm64: Add ioctl to fetch/store tags in a guest 2021-06-22 14:08:06 +01:00
kvm_hyp.h Merge branch 'kvm-arm64/nvhe-panic-info' into kvmarm-master/next 2021-04-13 15:38:03 +01:00
kvm_mmu.h Merge branch 'kvm-arm64/nvhe-panic-info' into kvmarm-master/next 2021-04-13 15:38:03 +01:00
kvm_mte.h KVM: arm64: Save/restore MTE registers 2021-06-22 14:08:05 +01:00
kvm_pgtable.h KVM: arm64: Introduce KVM_PGTABLE_S2_IDMAP stage 2 flag 2021-03-19 12:01:22 +00:00
kvm_ptrauth.h KVM: arm64: Update context references from host to hyp 2020-09-15 18:39:02 +01:00
kvm_ras.h
kvm_types.h KVM: arm64: Use common KVM implementation of MMU memory caches 2020-07-09 13:29:43 -04:00
linkage.h arm64: Don't insert a BTI instruction at inner labels 2020-06-24 14:24:29 +01:00
lse.h arm64: lse: Fix LSE atomics with LLVM 2020-02-18 18:10:49 +00:00
memory.h Assorted arm64 fixes and clean-ups, the most important: 2021-05-07 12:11:05 -07:00
mman.h arm64: mte: Validate the PROT_MTE request via arch_validate_flags() 2020-09-04 12:46:07 +01:00
mmu_context.h arm64: add __nocfi to functions that jump to a physical address 2021-04-08 16:04:22 -07:00
mmu.h KVM: arm64: Move BP hardening helpers into spectre.h 2020-11-16 10:40:18 +00:00
mmzone.h
module.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
module.lds.h arm64 module: set plt* section addresses to 0x0 2021-02-19 17:59:59 +00:00
mte-def.h KVM: arm64: Add ioctl to fetch/store tags in a guest 2021-06-22 14:08:06 +01:00
mte-kasan.h arm64: kasan: allow to init memory when setting tags 2021-04-30 11:20:41 -07:00
mte.h arm64: mte: Sync tags for pages where PTE is untagged 2021-06-22 09:38:50 +01:00
neon-intrinsics.h
neon.h
numa.h numa: Move numa implementation to common code 2021-01-14 15:08:55 -08:00
page-def.h arm64/mm: Unify CONT_PTE_SHIFT 2020-09-11 16:33:43 +01:00
page.h arm64: mte: Add PROT_MTE support to mmap() and mprotect() 2020-09-04 12:46:07 +01:00
paravirt.h x86/paravirt: Switch time pvops functions to use static_call() 2021-03-11 16:17:52 +01:00
pci.h arm64: Enable PCI write-combine resources under sysfs 2020-09-18 14:05:13 +01:00
percpu.h KVM: arm64: Support per_cpu_ptr in nVHE hyp code 2020-12-04 10:08:34 +00:00
perf_event.h arm64: perf: Add support caps under sysfs 2020-09-28 14:53:45 +01:00
pgalloc.h arm64: mm: use XN table mapping attributes for user/kernel mappings 2021-03-19 18:50:46 +00:00
pgtable-hwdef.h arm64: mm: use XN table mapping attributes for the linear region 2021-03-19 18:50:45 +00:00
pgtable-prot.h ARM: 2021-05-01 10:14:08 -07:00
pgtable-types.h arm64: add support for folded p4d page tables 2020-06-04 19:06:21 -07:00
pgtable.h arm64: mte: Sync tags for pages where PTE is untagged 2021-06-22 09:38:50 +01:00
pointer_auth.h arm64: pac: Optimize kernel entry/exit key installation code paths 2021-04-13 17:31:44 +01:00
preempt.h sched/rt, arm64: Use CONFIG_PREEMPTION 2019-12-08 14:37:32 +01:00
probes.h arm64/fpsimd: add <asm/insn.h> to <asm/kprobes.h> to fix fpsimd build 2020-11-23 10:59:00 +00:00
proc-fns.h arm64: mm: convert cpu_do_switch_mm() to C 2020-02-27 14:30:50 +00:00
processor.h arm64 updates for 5.13: 2021-04-26 10:25:03 -07:00
ptdump.h arm64: Add __init section marker to some functions 2021-04-08 17:45:10 +01:00
ptrace.h Merge branch 'kvm-master' into kvm-next 2021-01-07 18:06:52 -05:00
pvclock-abi.h KVM: arm64: Implement PV_TIME_FEATURES call 2019-10-21 19:20:27 +01:00
rwonce.h arm64: lto: Strengthen READ_ONCE() to acquire when CONFIG_LTO=y 2020-11-09 21:49:34 +00:00
scs.h scs: Move scs_overflow_check() out of architecture code 2020-05-18 17:47:40 +01:00
sdei.h
seccomp.h arm64: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h KVM: arm64: Introduce a BSS section for use at Hyp 2021-03-19 12:01:20 +00:00
setup.h arm64: Extract early FDT mapping from kaslr_early_init() 2021-02-09 13:47:50 +00:00
shmparam.h
signal32.h
signal.h arm64: expose FAR_EL1 tag bits in siginfo 2020-11-23 18:17:39 +00:00
simd.h arm64: fpsimd: Make sure SVE setup is complete before SIMD is used 2020-01-14 17:11:21 +00:00
smp_plat.h
smp.h arm64: smp: Add missing prototype for some smp.c functions 2021-03-29 10:41:42 +01:00
sparsemem.h arm64: Force SPARSEMEM_VMEMMAP as the only memory management model 2021-04-23 14:18:21 +01:00
spectre.h Merge remote-tracking branch 'origin/kvm-arm64/csv3' into kvmarm-master/queue 2020-12-03 19:12:24 +00:00
spinlock_types.h
spinlock.h locking/arch: Move qrwlock.h include after qspinlock.h 2021-02-11 07:59:54 -05:00
stack_pointer.h
stackprotector.h arm64: Defer enabling pointer authentication on boot core 2021-02-09 13:50:57 +00:00
stacktrace.h arm64: stacktrace: Move start_backtrace() out of the header 2021-03-28 18:09:47 +01:00
stage2_pgtable.h KVM: arm64: Remove unused page-table code 2020-09-11 15:51:15 +01:00
stat.h
string.h kasan, arm64: expand CONFIG_KASAN checks 2020-12-22 12:55:08 -08:00
suspend.h arm64: Preserve register x18 when CPU is suspended 2020-05-15 16:35:50 +01:00
sync_bitops.h
syscall_wrapper.h arm64: simplify syscall wrapper ifdeffery 2019-10-14 10:55:00 +01:00
syscall.h arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return 2020-07-16 11:41:31 +01:00
sysreg.h KVM: arm64: Save/restore MTE registers 2021-06-22 14:08:05 +01:00
system_misc.h arm64: expose FAR_EL1 tag bits in siginfo 2020-11-23 18:17:39 +00:00
thread_info.h arm64/process.c: fix Wmissing-prototypes build warnings 2021-03-25 09:50:16 +00:00
timex.h
tlb.h arm64: tlb: Set the TTL field in flush_tlb_range 2020-07-07 11:23:47 +01:00
tlbflush.h arm64: use a common .arch preamble for inline assembly 2020-08-28 11:15:15 +01:00
topology.h arch_topology: Allow multiple entities to provide sched_freq_tick() callback 2021-03-10 10:55:37 +05:30
trans_pgd.h arm64: trans_pgd: hibernate: idmap the single page that holds the copy page routines 2021-01-27 15:41:12 +00:00
traps.h arm64: expose FAR_EL1 tag bits in siginfo 2020-11-23 18:17:39 +00:00
uaccess.h arm64: mte: Enable TCO in functions that can read beyond buffer limits 2021-04-11 10:56:39 +01:00
unistd32.h quota: Disable quotactl_path syscall 2021-05-17 14:39:56 +02:00
unistd.h arch: Wire up Landlock syscalls 2021-04-22 12:22:11 -07:00
uprobes.h
vdso.h arm64/vdso: Add time namespace page 2020-07-24 13:15:20 +01:00
vermagic.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
virt.h arm64: Provide an 'upgrade to VHE' stub hypercall 2021-02-08 12:51:26 +00:00
vmalloc.h mm/vmalloc: provide fallback arch huge vmap support functions 2021-04-30 11:20:40 -07:00
vmap_stack.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
word-at-a-time.h arm64 updates for 5.13: 2021-04-26 10:25:03 -07:00
xor.h