Pull kvm fixes from Paolo Bonzini: "ARM: - Fix another set of FP/SIMD/SVE bugs affecting NV, and plugging some missing synchronisation - A small fix for the irqbypass hook fixes, tightening the check and ensuring that we only deal with MSI for both the old and the new route entry - Rework the way the shadow LRs are addressed in a nesting configuration, plugging an embarrassing bug as well as simplifying the whole process - Add yet another fix for the dreaded arch_timer_edge_cases selftest RISC-V: - Fix the size parameter check in SBI SFENCE calls - Don't treat SBI HFENCE calls as NOPs x86 TDX: - Complete API for handling complex TDVMCALLs in userspace. This was delayed because the spec lacked a way for userspace to deny supporting these calls; the new exit code is now approved" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: TDX: Exit to userspace for GetTdVmCallInfo KVM: TDX: Handle TDG.VP.VMCALL<GetQuote> KVM: TDX: Add new TDVMCALL status code for unsupported subfuncs KVM: arm64: VHE: Centralize ISBs when returning to host KVM: arm64: Remove cpacr_clear_set() KVM: arm64: Remove ad-hoc CPTR manipulation from kvm_hyp_handle_fpsimd() KVM: arm64: Remove ad-hoc CPTR manipulation from fpsimd_sve_sync() KVM: arm64: Reorganise CPTR trap manipulation KVM: arm64: VHE: Synchronize CPTR trap deactivation KVM: arm64: VHE: Synchronize restore of host debug registers KVM: arm64: selftests: Close the GIC FD in arch_timer_edge_cases KVM: arm64: Explicitly treat routing entry type changes as changes KVM: arm64: nv: Fix tracking of shadow list registers RISC-V: KVM: Don't treat SBI HFENCE calls as NOPs RISC-V: KVM: Fix the size parameter check in SBI SFENCE calls
Showing the changes to include/uapi/linux (1 of 14 files). Show all
Unified · Split
| @@ -178,6 +178,7 @@ struct kvm_xen_exit { · 177 unmodified lines | ||
| 178 | 178 | #define KVM_EXIT_NOTIFY 37 |
| 179 | 179 | #define KVM_EXIT_LOONGARCH_IOCSR 38 |
| 180 | 180 | #define KVM_EXIT_MEMORY_FAULT 39 |
| 181 | +#define KVM_EXIT_TDX 40 | |
| 181 | 182 | |
| 182 | 183 | /* For KVM_EXIT_INTERNAL_ERROR */ |
| 183 | 184 | /* Emulate instruction failed. */ |
| @@ -447,6 +448,27 @@ struct kvm_run { · 263 unmodified lines | ||
| 447 | 448 | __u64 gpa; |
| 448 | 449 | __u64 size; |
| 449 | 450 | } memory_fault; |
| 451 | + /* KVM_EXIT_TDX */ | |
| 452 | + struct { | |
| 453 | + __u64 flags; | |
| 454 | + __u64 nr; | |
| 455 | + union { | |
| 456 | + struct { | |
| 457 | + __u64 ret; | |
| 458 | + __u64 data[5]; | |
| 459 | + } unknown; | |
| 460 | + struct { | |
| 461 | + __u64 ret; | |
| 462 | + __u64 gpa; | |
| 463 | + __u64 size; | |
| 464 | + } get_quote; | |
| 465 | + struct { | |
| 466 | + __u64 ret; | |
| 467 | + __u64 leaf; | |
| 468 | + __u64 r11, r12, r13, r14; | |
| 469 | + } get_tdvmcall_info; | |
| 470 | + }; | |
| 471 | + } tdx; | |
| 450 | 472 | /* Fix the size of the union. */ |
| 451 | 473 | char padding[256]; |
| 452 | 474 | }; |