- kvm-target-i386-Make-invtsc-migratable-when-user-sets-ts.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-Enable-fdp-excptn-only-and-zero-fcs-fds.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-kvm-i386-make-kvm_filter_msr-and-related-definitions.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-kvm-remove-unnecessary-ifdef.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-crypto-Define-macros-for-hash-algorithm-digest-lengt.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Drop-the-check-of-phys_bits-in-host_cpu_rea.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Extract-a-common-fucntion-to-setup-value-of.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Drop-the-variable-smp_cores-and-smp_threads.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Drop-cores_per_pkg-in-cpu_x86_cpuid.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-topology-Update-the-comment-of-x86_apicid_from_.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-topology-Introduce-helpers-for-various-topology.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Track-a-X86CPUTopoInfo-directly-in-CPUX86St.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Hoist-check-of-CPUID_EXT3_TOPOEXT-against-t.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-cpu-Remove-nr_cores-from-struct-CPUState.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Set-up-CPUID_HT-in-x86_cpu_expand_features-.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Set-and-track-CPUID_EXT3_CMP_LEG-in-env-fea.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-Remove-unused-parameter-uint32_t-bit-in-feature.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-Print-CPUID-subleaf-info-for-unsupported.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-sev-Reduce-system-specific-declarations.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-physmem-replace-assertion-with-error.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-redhat-target-i386-add-CPUID-and-MSR-bits-from-Clear.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-qom-reverse-order-of-instance_post_init-calls.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-Remove-AccelCPUClass-cpu_class_init-need.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Consolidate-the-helper-to-get-Host-s-vendor.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-rocker-do-not-pollute-the-namespace.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-linux-headers-Update-to-Linux-v6.14-rc3.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-linux-headers-Update-to-Linux-v6.15-rc3.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-linux-headers-update-from-6.15-kvm-next.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-update-Linux-headers-to-v6.16-rc3.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-update-Linux-headers-to-KVM-tree-master.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-Introduce-tdx-guest-object.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Implement-tdx_kvm_type-for-TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Implement-tdx_kvm_init-to-initialize-TDX-VM.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Get-tdx_capabilities-via-KVM_TDX_CAPABILITI.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Introduce-is_tdx_vm-helper-and-cache-tdx_gu.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-kvm-Introduce-kvm_arch_pre_create_vcpu.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Initialize-TDX-before-creating-TD-vcpus.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Add-property-sept-ve-disable-for-tdx-guest-.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Make-sept_ve_disable-set-by-default.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Wire-CPU-features-up-with-attributes-of-TD-.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Validate-TD-attributes.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Support-user-configurable-mrconfigid-mrowne.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Set-APIC-bus-rate-to-match-with-what-TDX-mo.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Implement-user-specified-tsc-frequency.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-load-TDVF-for-TD-guest.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdvf-Introduce-function-to-parse-TDVF-metadata.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Parse-TDVF-metadata-for-TDX-VM.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Don-t-initialize-pc.rom-for-TDX-VMs.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Track-mem_ptr-for-each-firmware-entry-of-TD.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Track-RAM-entries-for-TDX-VM.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-headers-Add-definitions-from-UEFI-spec-for-volumes-r.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Setup-the-TD-HOB-list.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Add-TDVF-memory-via-KVM_TDX_INIT_MEM_REGION.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Call-KVM_TDX_INIT_VCPU-to-initialize-TDX-vc.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Finalize-TDX-VM.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Enable-user-exit-on-KVM_HC_MAP_GPA_RANGE.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Handle-KVM_SYSTEM_EVENT_TDX_FATAL.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Wire-TDX_REPORT_FATAL_ERROR-with-GuestPanic.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-kvm-Check-KVM_CAP_MAX_VCPUS-at-vm-level.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-introduce-x86_confidential_guest_cpu_instan.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-implement-tdx_cpu_instance_init.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Introduce-enable_cpuid_0x1f-to-force-exposi.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Force-exposing-CPUID-0x1f.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Set-kvm_readonly_mem_enabled-to-false-for-T.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Disable-SMM-for-TDX-VMs.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Disable-PIC-for-TDX-VMs.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Set-and-check-kernel_irqchip-mode-for-TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Don-t-synchronize-guest-tsc-for-TDs.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Only-configure-MSR_IA32_UCODE_REV-in-kvm_in.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-apic-Skip-kvm_apic_put-for-TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-cpu-Don-t-set-vcpu_dirty-when-guest_state_protected.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cgs-Rename-mask_cpuid_features-to-adjust_cpuid_.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Implement-adjust_cpuid_features-for-TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Add-TDX-fixed1-bits-to-supported-CPUIDs.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Add-supported-CPUID-bits-related-to-TD-Attr.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Add-supported-CPUID-bits-relates-to-XFAM.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Add-XFD-to-supported-bit-of-TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Define-supported-KVM-features-for-TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cgs-Introduce-x86_confidential_guest_check_feat.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Fetch-and-validate-CPUID-of-TD-guest.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Don-t-treat-SYSCALL-as-unavailable.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Make-invtsc-default-on.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Validate-phys_bits-against-host-value.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-docs-Add-TDX-documentation.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Fix-build-on-32-bit-host.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdvf-Fix-build-on-32-bit-host.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Move-adjustment-of-CPUID_EXT_PDCM-before-fe.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Error-and-exit-when-named-cpu-model-is-requ.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Rename-enable_cpuid_0x1f-to-force_cpuid_0x1.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Fix-the-typo-of-the-comment-of-struct-TdxGu.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Clarify-the-error-message-of-mrconfigid-mro.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-handle-TDG.VP.VMCALL-GetTdVmCallInfo.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-handle-TDG.VP.VMCALL-GetQuote.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-move-max_features-to-class.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-nvmm-whpx-add-accel-CPU-class-that-sets-.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-allow-reordering-max_x86_cpu_initfn-vs-a.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-move-accel_cpu_instance_init-to-.instanc.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-merge-host_cpu_instance_init-and-host_cp.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Remove-enumeration-of-GetQuote-in-tdx_handl.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Set-value-of-GetTdVmCallInfo-based-on-capab.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-handle-TDVMCALL_SETUP_EVENT_NOTIFY_INTERRUP.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Fix-the-report-of-gpa-in-QAPI.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Remove-task-watch-only-when-it-s-valid.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Don-t-mask-off-CPUID_EXT_PDCM.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Move-x86_ext_save_areas-initialization-to-..patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-target-i386-tdx-fix-locking-for-interrupt-injection.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-cpu-Cleanup-host_cpu_max_instance_init.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-i386-tdx-Remove-the-redundant-qemu_mutex_init-tdx-lo.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-redhat-enable-CONFIG_TDX.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-redhat-allow-5-level-paging-for-TDX-VMs.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-memory-Export-a-helper-to-get-intersection-of-a-Memo.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-memory-Change-memory_region_set_ram_discard_manager-.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-memory-Unify-the-definiton-of-ReplayRamPopulate-and-.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-ram-block-attributes-Introduce-RamBlockAttributes-to.patch [RHEL-15710 RHEL-20798 RHEL-49728] - kvm-physmem-Support-coordinated-discarding-of-RAM-with-g.patch [RHEL-15710 RHEL-20798 RHEL-49728] - Resolves: RHEL-15710 ([Intel 9.7 FEAT] TDX: QEMU Support) - Resolves: RHEL-20798 ([Intel 9.6 FEAT] TDX: host: Virt-QEMU: Add safe device pass-through for TD) - Resolves: RHEL-49728 ([Intel 9.7 FEAT] Virt-QEMU: TDX: Allow to configure apic bus clock)
496 lines
19 KiB
Diff
496 lines
19 KiB
Diff
From d90604bca41cef828b4e37d77b53e472b272dbca Mon Sep 17 00:00:00 2001
|
|
From: Paolo Bonzini <pbonzini@redhat.com>
|
|
Date: Fri, 18 Jul 2025 18:03:45 +0200
|
|
Subject: [PATCH 026/115] linux-headers: Update to Linux v6.14-rc3
|
|
|
|
RH-Author: Paolo Bonzini <pbonzini@redhat.com>
|
|
RH-MergeRequest: 391: TDX support, including attestation and device assignment
|
|
RH-Jira: RHEL-15710 RHEL-20798 RHEL-49728
|
|
RH-Acked-by: Yash Mankad <None>
|
|
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
|
RH-Acked-by: David Hildenbrand <david@redhat.com>
|
|
RH-Commit: [26/115] 6674b075f7bd2c7fd4cbd4ccb1689fed0fc3b026 (bonzini/rhel-qemu-kvm)
|
|
|
|
Update headers to retrieve the latest KVM caps for RISC-V.
|
|
|
|
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
|
|
Message-ID: <20250221153758.652078-2-dbarboza@ventanamicro.com>
|
|
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
|
|
(cherry picked from commit 421ee1ec6f0de0b0fd96b262bda18b97e54263b4)
|
|
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
---
|
|
include/standard-headers/linux/ethtool.h | 4 +
|
|
include/standard-headers/linux/fuse.h | 76 ++++++++++++++++++-
|
|
.../linux/input-event-codes.h | 1 +
|
|
include/standard-headers/linux/pci_regs.h | 16 ++--
|
|
include/standard-headers/linux/virtio_pci.h | 14 ++++
|
|
linux-headers/asm-arm64/kvm.h | 3 -
|
|
linux-headers/asm-loongarch/kvm_para.h | 1 +
|
|
linux-headers/asm-riscv/kvm.h | 7 +-
|
|
linux-headers/asm-x86/kvm.h | 1 +
|
|
linux-headers/linux/iommufd.h | 35 ++++++---
|
|
linux-headers/linux/kvm.h | 8 +-
|
|
linux-headers/linux/stddef.h | 13 +++-
|
|
linux-headers/linux/vduse.h | 2 +-
|
|
13 files changed, 146 insertions(+), 35 deletions(-)
|
|
|
|
diff --git a/include/standard-headers/linux/ethtool.h b/include/standard-headers/linux/ethtool.h
|
|
index 67c47912e5..e83382531c 100644
|
|
--- a/include/standard-headers/linux/ethtool.h
|
|
+++ b/include/standard-headers/linux/ethtool.h
|
|
@@ -681,6 +681,8 @@ enum ethtool_link_ext_substate_module {
|
|
* @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics
|
|
* @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics
|
|
* @ETH_SS_STATS_RMON: names of RMON statistics
|
|
+ * @ETH_SS_STATS_PHY: names of PHY(dev) statistics
|
|
+ * @ETH_SS_TS_FLAGS: hardware timestamping flags
|
|
*
|
|
* @ETH_SS_COUNT: number of defined string sets
|
|
*/
|
|
@@ -706,6 +708,8 @@ enum ethtool_stringset {
|
|
ETH_SS_STATS_ETH_MAC,
|
|
ETH_SS_STATS_ETH_CTRL,
|
|
ETH_SS_STATS_RMON,
|
|
+ ETH_SS_STATS_PHY,
|
|
+ ETH_SS_TS_FLAGS,
|
|
|
|
/* add new constants above here */
|
|
ETH_SS_COUNT
|
|
diff --git a/include/standard-headers/linux/fuse.h b/include/standard-headers/linux/fuse.h
|
|
index 889e12ad15..d303effb2a 100644
|
|
--- a/include/standard-headers/linux/fuse.h
|
|
+++ b/include/standard-headers/linux/fuse.h
|
|
@@ -220,6 +220,15 @@
|
|
*
|
|
* 7.41
|
|
* - add FUSE_ALLOW_IDMAP
|
|
+ * 7.42
|
|
+ * - Add FUSE_OVER_IO_URING and all other io-uring related flags and data
|
|
+ * structures:
|
|
+ * - struct fuse_uring_ent_in_out
|
|
+ * - struct fuse_uring_req_header
|
|
+ * - struct fuse_uring_cmd_req
|
|
+ * - FUSE_URING_IN_OUT_HEADER_SZ
|
|
+ * - FUSE_URING_OP_IN_OUT_SZ
|
|
+ * - enum fuse_uring_cmd
|
|
*/
|
|
|
|
#ifndef _LINUX_FUSE_H
|
|
@@ -251,7 +260,7 @@
|
|
#define FUSE_KERNEL_VERSION 7
|
|
|
|
/** Minor version number of this interface */
|
|
-#define FUSE_KERNEL_MINOR_VERSION 41
|
|
+#define FUSE_KERNEL_MINOR_VERSION 42
|
|
|
|
/** The node ID of the root inode */
|
|
#define FUSE_ROOT_ID 1
|
|
@@ -421,6 +430,7 @@ struct fuse_file_lock {
|
|
* FUSE_HAS_RESEND: kernel supports resending pending requests, and the high bit
|
|
* of the request ID indicates resend requests
|
|
* FUSE_ALLOW_IDMAP: allow creation of idmapped mounts
|
|
+ * FUSE_OVER_IO_URING: Indicate that client supports io-uring
|
|
*/
|
|
#define FUSE_ASYNC_READ (1 << 0)
|
|
#define FUSE_POSIX_LOCKS (1 << 1)
|
|
@@ -467,6 +477,7 @@ struct fuse_file_lock {
|
|
/* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */
|
|
#define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP
|
|
#define FUSE_ALLOW_IDMAP (1ULL << 40)
|
|
+#define FUSE_OVER_IO_URING (1ULL << 41)
|
|
|
|
/**
|
|
* CUSE INIT request/reply flags
|
|
@@ -1202,4 +1213,67 @@ struct fuse_supp_groups {
|
|
uint32_t groups[];
|
|
};
|
|
|
|
+/**
|
|
+ * Size of the ring buffer header
|
|
+ */
|
|
+#define FUSE_URING_IN_OUT_HEADER_SZ 128
|
|
+#define FUSE_URING_OP_IN_OUT_SZ 128
|
|
+
|
|
+/* Used as part of the fuse_uring_req_header */
|
|
+struct fuse_uring_ent_in_out {
|
|
+ uint64_t flags;
|
|
+
|
|
+ /*
|
|
+ * commit ID to be used in a reply to a ring request (see also
|
|
+ * struct fuse_uring_cmd_req)
|
|
+ */
|
|
+ uint64_t commit_id;
|
|
+
|
|
+ /* size of user payload buffer */
|
|
+ uint32_t payload_sz;
|
|
+ uint32_t padding;
|
|
+
|
|
+ uint64_t reserved;
|
|
+};
|
|
+
|
|
+/**
|
|
+ * Header for all fuse-io-uring requests
|
|
+ */
|
|
+struct fuse_uring_req_header {
|
|
+ /* struct fuse_in_header / struct fuse_out_header */
|
|
+ char in_out[FUSE_URING_IN_OUT_HEADER_SZ];
|
|
+
|
|
+ /* per op code header */
|
|
+ char op_in[FUSE_URING_OP_IN_OUT_SZ];
|
|
+
|
|
+ struct fuse_uring_ent_in_out ring_ent_in_out;
|
|
+};
|
|
+
|
|
+/**
|
|
+ * sqe commands to the kernel
|
|
+ */
|
|
+enum fuse_uring_cmd {
|
|
+ FUSE_IO_URING_CMD_INVALID = 0,
|
|
+
|
|
+ /* register the request buffer and fetch a fuse request */
|
|
+ FUSE_IO_URING_CMD_REGISTER = 1,
|
|
+
|
|
+ /* commit fuse request result and fetch next request */
|
|
+ FUSE_IO_URING_CMD_COMMIT_AND_FETCH = 2,
|
|
+};
|
|
+
|
|
+/**
|
|
+ * In the 80B command area of the SQE.
|
|
+ */
|
|
+struct fuse_uring_cmd_req {
|
|
+ uint64_t flags;
|
|
+
|
|
+ /* entry identifier for commits */
|
|
+ uint64_t commit_id;
|
|
+
|
|
+ /* queue the command is for (queue index) */
|
|
+ uint16_t qid;
|
|
+ uint8_t padding[6];
|
|
+};
|
|
+
|
|
#endif /* _LINUX_FUSE_H */
|
|
diff --git a/include/standard-headers/linux/input-event-codes.h b/include/standard-headers/linux/input-event-codes.h
|
|
index 50b2b7497e..09ba0ad878 100644
|
|
--- a/include/standard-headers/linux/input-event-codes.h
|
|
+++ b/include/standard-headers/linux/input-event-codes.h
|
|
@@ -519,6 +519,7 @@
|
|
#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */
|
|
#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */
|
|
#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */
|
|
+#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */
|
|
|
|
#define KEY_DEL_EOL 0x1c0
|
|
#define KEY_DEL_EOS 0x1c1
|
|
diff --git a/include/standard-headers/linux/pci_regs.h b/include/standard-headers/linux/pci_regs.h
|
|
index 1601c7ed5f..3445c4970e 100644
|
|
--- a/include/standard-headers/linux/pci_regs.h
|
|
+++ b/include/standard-headers/linux/pci_regs.h
|
|
@@ -533,7 +533,7 @@
|
|
#define PCI_EXP_DEVSTA_TRPND 0x0020 /* Transactions Pending */
|
|
#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12 /* v1 endpoints without link end here */
|
|
#define PCI_EXP_LNKCAP 0x0c /* Link Capabilities */
|
|
-#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Supported Link Speeds */
|
|
+#define PCI_EXP_LNKCAP_SLS 0x0000000f /* Max Link Speed (prior to PCIe r3.0: Supported Link Speeds) */
|
|
#define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
|
|
#define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */
|
|
#define PCI_EXP_LNKCAP_SLS_8_0GB 0x00000003 /* LNKCAP2 SLS Vector bit 2 */
|
|
@@ -665,6 +665,7 @@
|
|
#define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */
|
|
#define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */
|
|
#define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 /* End-End TLP Prefix */
|
|
+#define PCI_EXP_DEVCAP2_EE_PREFIX_MAX 0x00c00000 /* Max End-End TLP Prefixes */
|
|
#define PCI_EXP_DEVCTL2 0x28 /* Device Control 2 */
|
|
#define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */
|
|
#define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */
|
|
@@ -789,10 +790,11 @@
|
|
/* Same bits as above */
|
|
#define PCI_ERR_CAP 0x18 /* Advanced Error Capabilities & Ctrl*/
|
|
#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f) /* First Error Pointer */
|
|
-#define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */
|
|
-#define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */
|
|
-#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */
|
|
-#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
|
|
+#define PCI_ERR_CAP_ECRC_GENC 0x00000020 /* ECRC Generation Capable */
|
|
+#define PCI_ERR_CAP_ECRC_GENE 0x00000040 /* ECRC Generation Enable */
|
|
+#define PCI_ERR_CAP_ECRC_CHKC 0x00000080 /* ECRC Check Capable */
|
|
+#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
|
|
+#define PCI_ERR_CAP_PREFIX_LOG_PRESENT 0x00000800 /* TLP Prefix Log Present */
|
|
#define PCI_ERR_HEADER_LOG 0x1c /* Header Log Register (16 bytes) */
|
|
#define PCI_ERR_ROOT_COMMAND 0x2c /* Root Error Command */
|
|
#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001 /* Correctable Err Reporting Enable */
|
|
@@ -808,6 +810,7 @@
|
|
#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
|
|
#define PCI_ERR_ROOT_AER_IRQ 0xf8000000 /* Advanced Error Interrupt Message Number */
|
|
#define PCI_ERR_ROOT_ERR_SRC 0x34 /* Error Source Identification */
|
|
+#define PCI_ERR_PREFIX_LOG 0x38 /* TLP Prefix LOG Register (up to 16 bytes) */
|
|
|
|
/* Virtual Channel */
|
|
#define PCI_VC_PORT_CAP1 0x04
|
|
@@ -1001,9 +1004,6 @@
|
|
#define PCI_ACS_CTRL 0x06 /* ACS Control Register */
|
|
#define PCI_ACS_EGRESS_CTL_V 0x08 /* ACS Egress Control Vector */
|
|
|
|
-#define PCI_VSEC_HDR 4 /* extended cap - vendor-specific */
|
|
-#define PCI_VSEC_HDR_LEN_SHIFT 20 /* shift for length field */
|
|
-
|
|
/* SATA capability */
|
|
#define PCI_SATA_REGS 4 /* SATA REGs specifier */
|
|
#define PCI_SATA_REGS_MASK 0xF /* location - BAR#/inline */
|
|
diff --git a/include/standard-headers/linux/virtio_pci.h b/include/standard-headers/linux/virtio_pci.h
|
|
index b177ed8972..91fec6f502 100644
|
|
--- a/include/standard-headers/linux/virtio_pci.h
|
|
+++ b/include/standard-headers/linux/virtio_pci.h
|
|
@@ -116,6 +116,8 @@
|
|
#define VIRTIO_PCI_CAP_PCI_CFG 5
|
|
/* Additional shared memory capability */
|
|
#define VIRTIO_PCI_CAP_SHARED_MEMORY_CFG 8
|
|
+/* PCI vendor data configuration */
|
|
+#define VIRTIO_PCI_CAP_VENDOR_CFG 9
|
|
|
|
/* This is the PCI capability header: */
|
|
struct virtio_pci_cap {
|
|
@@ -130,6 +132,18 @@ struct virtio_pci_cap {
|
|
uint32_t length; /* Length of the structure, in bytes. */
|
|
};
|
|
|
|
+/* This is the PCI vendor data capability header: */
|
|
+struct virtio_pci_vndr_data {
|
|
+ uint8_t cap_vndr; /* Generic PCI field: PCI_CAP_ID_VNDR */
|
|
+ uint8_t cap_next; /* Generic PCI field: next ptr. */
|
|
+ uint8_t cap_len; /* Generic PCI field: capability length */
|
|
+ uint8_t cfg_type; /* Identifies the structure. */
|
|
+ uint16_t vendor_id; /* Identifies the vendor-specific format. */
|
|
+ /* For Vendor Definition */
|
|
+ /* Pads structure to a multiple of 4 bytes */
|
|
+ /* Reads must not have side effects */
|
|
+};
|
|
+
|
|
struct virtio_pci_cap64 {
|
|
struct virtio_pci_cap cap;
|
|
uint32_t offset_hi; /* Most sig 32 bits of offset */
|
|
diff --git a/linux-headers/asm-arm64/kvm.h b/linux-headers/asm-arm64/kvm.h
|
|
index dccd5d965f..ec1e82bdc8 100644
|
|
--- a/linux-headers/asm-arm64/kvm.h
|
|
+++ b/linux-headers/asm-arm64/kvm.h
|
|
@@ -43,9 +43,6 @@
|
|
#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
|
|
#define KVM_DIRTY_LOG_PAGE_OFFSET 64
|
|
|
|
-#define KVM_REG_SIZE(id) \
|
|
- (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
|
|
-
|
|
struct kvm_regs {
|
|
struct user_pt_regs regs; /* sp = sp_el0 */
|
|
|
|
diff --git a/linux-headers/asm-loongarch/kvm_para.h b/linux-headers/asm-loongarch/kvm_para.h
|
|
index 4ba4ad8db1..fd7f40713d 100644
|
|
--- a/linux-headers/asm-loongarch/kvm_para.h
|
|
+++ b/linux-headers/asm-loongarch/kvm_para.h
|
|
@@ -17,5 +17,6 @@
|
|
#define KVM_FEATURE_STEAL_TIME 2
|
|
/* BIT 24 - 31 are features configurable by user space vmm */
|
|
#define KVM_FEATURE_VIRT_EXTIOI 24
|
|
+#define KVM_FEATURE_USER_HCALL 25
|
|
|
|
#endif /* _ASM_KVM_PARA_H */
|
|
diff --git a/linux-headers/asm-riscv/kvm.h b/linux-headers/asm-riscv/kvm.h
|
|
index 3482c9a73d..f06bc5efcd 100644
|
|
--- a/linux-headers/asm-riscv/kvm.h
|
|
+++ b/linux-headers/asm-riscv/kvm.h
|
|
@@ -179,6 +179,9 @@ enum KVM_RISCV_ISA_EXT_ID {
|
|
KVM_RISCV_ISA_EXT_SSNPM,
|
|
KVM_RISCV_ISA_EXT_SVADE,
|
|
KVM_RISCV_ISA_EXT_SVADU,
|
|
+ KVM_RISCV_ISA_EXT_SVVPTC,
|
|
+ KVM_RISCV_ISA_EXT_ZABHA,
|
|
+ KVM_RISCV_ISA_EXT_ZICCRSE,
|
|
KVM_RISCV_ISA_EXT_MAX,
|
|
};
|
|
|
|
@@ -198,6 +201,7 @@ enum KVM_RISCV_SBI_EXT_ID {
|
|
KVM_RISCV_SBI_EXT_VENDOR,
|
|
KVM_RISCV_SBI_EXT_DBCN,
|
|
KVM_RISCV_SBI_EXT_STA,
|
|
+ KVM_RISCV_SBI_EXT_SUSP,
|
|
KVM_RISCV_SBI_EXT_MAX,
|
|
};
|
|
|
|
@@ -211,9 +215,6 @@ struct kvm_riscv_sbi_sta {
|
|
#define KVM_RISCV_TIMER_STATE_OFF 0
|
|
#define KVM_RISCV_TIMER_STATE_ON 1
|
|
|
|
-#define KVM_REG_SIZE(id) \
|
|
- (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
|
|
-
|
|
/* If you need to interpret the index values, here is the key: */
|
|
#define KVM_REG_RISCV_TYPE_MASK 0x00000000FF000000
|
|
#define KVM_REG_RISCV_TYPE_SHIFT 24
|
|
diff --git a/linux-headers/asm-x86/kvm.h b/linux-headers/asm-x86/kvm.h
|
|
index 96589490c4..86f2c34e7a 100644
|
|
--- a/linux-headers/asm-x86/kvm.h
|
|
+++ b/linux-headers/asm-x86/kvm.h
|
|
@@ -923,5 +923,6 @@ struct kvm_hyperv_eventfd {
|
|
#define KVM_X86_SEV_VM 2
|
|
#define KVM_X86_SEV_ES_VM 3
|
|
#define KVM_X86_SNP_VM 4
|
|
+#define KVM_X86_TDX_VM 5
|
|
|
|
#endif /* _ASM_X86_KVM_H */
|
|
diff --git a/linux-headers/linux/iommufd.h b/linux-headers/linux/iommufd.h
|
|
index 37aae16502..ccbdca5e11 100644
|
|
--- a/linux-headers/linux/iommufd.h
|
|
+++ b/linux-headers/linux/iommufd.h
|
|
@@ -297,7 +297,7 @@ struct iommu_ioas_unmap {
|
|
* ioctl(IOMMU_OPTION_HUGE_PAGES)
|
|
* @IOMMU_OPTION_RLIMIT_MODE:
|
|
* Change how RLIMIT_MEMLOCK accounting works. The caller must have privilege
|
|
- * to invoke this. Value 0 (default) is user based accouting, 1 uses process
|
|
+ * to invoke this. Value 0 (default) is user based accounting, 1 uses process
|
|
* based accounting. Global option, object_id must be 0
|
|
* @IOMMU_OPTION_HUGE_PAGES:
|
|
* Value 1 (default) allows contiguous pages to be combined when generating
|
|
@@ -390,7 +390,7 @@ struct iommu_vfio_ioas {
|
|
* @IOMMU_HWPT_ALLOC_PASID: Requests a domain that can be used with PASID. The
|
|
* domain can be attached to any PASID on the device.
|
|
* Any domain attached to the non-PASID part of the
|
|
- * device must also be flaged, otherwise attaching a
|
|
+ * device must also be flagged, otherwise attaching a
|
|
* PASID will blocked.
|
|
* If IOMMU does not support PASID it will return
|
|
* error (-EOPNOTSUPP).
|
|
@@ -558,16 +558,25 @@ struct iommu_hw_info_vtd {
|
|
* For the details of @idr, @iidr and @aidr, please refer to the chapters
|
|
* from 6.3.1 to 6.3.6 in the SMMUv3 Spec.
|
|
*
|
|
- * User space should read the underlying ARM SMMUv3 hardware information for
|
|
- * the list of supported features.
|
|
+ * This reports the raw HW capability, and not all bits are meaningful to be
|
|
+ * read by userspace. Only the following fields should be used:
|
|
*
|
|
- * Note that these values reflect the raw HW capability, without any insight if
|
|
- * any required kernel driver support is present. Bits may be set indicating the
|
|
- * HW has functionality that is lacking kernel software support, such as BTM. If
|
|
- * a VMM is using this information to construct emulated copies of these
|
|
- * registers it should only forward bits that it knows it can support.
|
|
+ * idr[0]: ST_LEVEL, TERM_MODEL, STALL_MODEL, TTENDIAN , CD2L, ASID16, TTF
|
|
+ * idr[1]: SIDSIZE, SSIDSIZE
|
|
+ * idr[3]: BBML, RIL
|
|
+ * idr[5]: VAX, GRAN64K, GRAN16K, GRAN4K
|
|
*
|
|
- * In future, presence of required kernel support will be indicated in flags.
|
|
+ * - S1P should be assumed to be true if a NESTED HWPT can be created
|
|
+ * - VFIO/iommufd only support platforms with COHACC, it should be assumed to be
|
|
+ * true.
|
|
+ * - ATS is a per-device property. If the VMM describes any devices as ATS
|
|
+ * capable in ACPI/DT it should set the corresponding idr.
|
|
+ *
|
|
+ * This list may expand in future (eg E0PD, AIE, PBHA, D128, DS etc). It is
|
|
+ * important that VMMs do not read bits outside the list to allow for
|
|
+ * compatibility with future kernels. Several features in the SMMUv3
|
|
+ * architecture are not currently supported by the kernel for nesting: HTTU,
|
|
+ * BTM, MPAM and others.
|
|
*/
|
|
struct iommu_hw_info_arm_smmuv3 {
|
|
__u32 flags;
|
|
@@ -766,7 +775,7 @@ struct iommu_hwpt_vtd_s1_invalidate {
|
|
};
|
|
|
|
/**
|
|
- * struct iommu_viommu_arm_smmuv3_invalidate - ARM SMMUv3 cahce invalidation
|
|
+ * struct iommu_viommu_arm_smmuv3_invalidate - ARM SMMUv3 cache invalidation
|
|
* (IOMMU_VIOMMU_INVALIDATE_DATA_ARM_SMMUV3)
|
|
* @cmd: 128-bit cache invalidation command that runs in SMMU CMDQ.
|
|
* Must be little-endian.
|
|
@@ -859,6 +868,7 @@ enum iommu_hwpt_pgfault_perm {
|
|
* @pasid: Process Address Space ID
|
|
* @grpid: Page Request Group Index
|
|
* @perm: Combination of enum iommu_hwpt_pgfault_perm
|
|
+ * @__reserved: Must be 0.
|
|
* @addr: Fault address
|
|
* @length: a hint of how much data the requestor is expecting to fetch. For
|
|
* example, if the PRI initiator knows it is going to do a 10MB
|
|
@@ -874,7 +884,8 @@ struct iommu_hwpt_pgfault {
|
|
__u32 pasid;
|
|
__u32 grpid;
|
|
__u32 perm;
|
|
- __u64 addr;
|
|
+ __u32 __reserved;
|
|
+ __aligned_u64 addr;
|
|
__u32 length;
|
|
__u32 cookie;
|
|
};
|
|
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
|
|
index 3bcd4eabe3..27181b3dd8 100644
|
|
--- a/linux-headers/linux/kvm.h
|
|
+++ b/linux-headers/linux/kvm.h
|
|
@@ -609,10 +609,6 @@ struct kvm_ioeventfd {
|
|
#define KVM_X86_DISABLE_EXITS_HLT (1 << 1)
|
|
#define KVM_X86_DISABLE_EXITS_PAUSE (1 << 2)
|
|
#define KVM_X86_DISABLE_EXITS_CSTATE (1 << 3)
|
|
-#define KVM_X86_DISABLE_VALID_EXITS (KVM_X86_DISABLE_EXITS_MWAIT | \
|
|
- KVM_X86_DISABLE_EXITS_HLT | \
|
|
- KVM_X86_DISABLE_EXITS_PAUSE | \
|
|
- KVM_X86_DISABLE_EXITS_CSTATE)
|
|
|
|
/* for KVM_ENABLE_CAP */
|
|
struct kvm_enable_cap {
|
|
@@ -1062,6 +1058,10 @@ struct kvm_dirty_tlb {
|
|
|
|
#define KVM_REG_SIZE_SHIFT 52
|
|
#define KVM_REG_SIZE_MASK 0x00f0000000000000ULL
|
|
+
|
|
+#define KVM_REG_SIZE(id) \
|
|
+ (1U << (((id) & KVM_REG_SIZE_MASK) >> KVM_REG_SIZE_SHIFT))
|
|
+
|
|
#define KVM_REG_SIZE_U8 0x0000000000000000ULL
|
|
#define KVM_REG_SIZE_U16 0x0010000000000000ULL
|
|
#define KVM_REG_SIZE_U32 0x0020000000000000ULL
|
|
diff --git a/linux-headers/linux/stddef.h b/linux-headers/linux/stddef.h
|
|
index 96aa341942..e1416f7937 100644
|
|
--- a/linux-headers/linux/stddef.h
|
|
+++ b/linux-headers/linux/stddef.h
|
|
@@ -8,6 +8,13 @@
|
|
#define __always_inline __inline__
|
|
#endif
|
|
|
|
+/* Not all C++ standards support type declarations inside an anonymous union */
|
|
+#ifndef __cplusplus
|
|
+#define __struct_group_tag(TAG) TAG
|
|
+#else
|
|
+#define __struct_group_tag(TAG)
|
|
+#endif
|
|
+
|
|
/**
|
|
* __struct_group() - Create a mirrored named and anonyomous struct
|
|
*
|
|
@@ -20,13 +27,13 @@
|
|
* and size: one anonymous and one named. The former's members can be used
|
|
* normally without sub-struct naming, and the latter can be used to
|
|
* reason about the start, end, and size of the group of struct members.
|
|
- * The named struct can also be explicitly tagged for layer reuse, as well
|
|
- * as both having struct attributes appended.
|
|
+ * The named struct can also be explicitly tagged for layer reuse (C only),
|
|
+ * as well as both having struct attributes appended.
|
|
*/
|
|
#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
|
|
union { \
|
|
struct { MEMBERS } ATTRS; \
|
|
- struct TAG { MEMBERS } ATTRS NAME; \
|
|
+ struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; \
|
|
} ATTRS
|
|
|
|
#ifdef __cplusplus
|
|
diff --git a/linux-headers/linux/vduse.h b/linux-headers/linux/vduse.h
|
|
index 6d2ca064b5..f46269af34 100644
|
|
--- a/linux-headers/linux/vduse.h
|
|
+++ b/linux-headers/linux/vduse.h
|
|
@@ -1,4 +1,4 @@
|
|
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
+/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
|
|
#ifndef _VDUSE_H_
|
|
#define _VDUSE_H_
|
|
|
|
--
|
|
2.50.1
|
|
|