linux-stable/arch/x86/xen
Juergen Gross b4845bb638 x86/xen: add central hypercall functions
Add generic hypercall functions usable for all normal (i.e. not iret)
hypercalls. Depending on the guest type and the processor vendor
different functions need to be used due to the to be used instruction
for entering the hypervisor:

- PV guests need to use syscall
- HVM/PVH guests on Intel need to use vmcall
- HVM/PVH guests on AMD and Hygon need to use vmmcall

As PVH guests need to issue hypercalls very early during boot, there
is a 4th hypercall function needed for HVM/PVH which can be used on
Intel and AMD processors. It will check the vendor type and then set
the Intel or AMD specific function to use via static_call().

This is part of XSA-466 / CVE-2024-53241.

Reported-by: Andrew Cooper <andrew.cooper3@citrix.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Co-developed-by: Peter Zijlstra <peterz@infradead.org>
2024-12-17 08:23:29 +01: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/xen: add central hypercall functions 2024-12-17 08:23:29 +01:00
enlighten_pv.c x86/xen: add central hypercall functions 2024-12-17 08:23:29 +01:00
enlighten_pvh.c xen/pvh: Setup gsi for passthrough device 2024-09-25 09:54:52 +02:00
enlighten.c x86/xen: add central hypercall functions 2024-12-17 08:23:29 +01:00
grant-table.c x86/xen: open code alloc_vm_area in arch_gnttab_valloc 2020-10-18 09:27:10 -07:00
irq.c x86/paravirt: Move some functions and defines to alternative.c 2023-12-10 20:30:31 +01:00
Kconfig treewide: replace or remove redundant def_bool in Kconfig files 2024-02-20 20:47:45 +09: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 ALong with the usual shower of singleton patches, notable patch series in 2024-09-21 07:29:05 -07:00
mmu.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
multicalls.c xen: fix multicall debug data referencing 2024-07-23 12:23:20 +02:00
p2m.c xen: allow mapping ACPI data using a different physical address 2024-09-12 08:25:07 +02:00
platform-pci-unplug.c x86: xen: platform-pci-unplug: use pr_err() and pr_warn() instead of raw printk() 2021-08-30 12:09:54 +02:00
pmu.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
setup.c xen: tolerate ACPI NVS memory overlapping with Xen allocated memory 2024-09-12 08:25:12 +02:00
smp_hvm.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
smp_pv.c xen: fix multicall debug data referencing 2024-07-23 12:23:20 +02:00
smp.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
spinlock.c x86/xen: remove deprecated xen_nopvspin boot parameter 2024-07-11 16:33:51 +02: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 locking/seqlock, headers: Untangle the spaghetti monster 2020-08-06 16:13:13 +02:00
suspend.c x86/xen: eliminate some private header files 2024-07-11 16:33:48 +02:00
time.c x86/xen/time: Reduce Xen timer tick 2024-07-02 09:35:52 +02:00
trace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
vga.c x86: Do not include <asm/bootparam.h> in several files 2024-01-30 15:17:24 +01:00
xen-asm.S x86/xen: add central hypercall functions 2024-12-17 08:23:29 +01:00
xen-head.S x86/xen: add central hypercall functions 2024-12-17 08:23:29 +01:00
xen-ops.h x86/xen: add central hypercall functions 2024-12-17 08:23:29 +01:00