mirror of
https://gitlab.com/qemu-project/qemu.git
synced 2026-10-28 11:54:41 +08:00
linux-headers: Update to Linux v7.3-rc1
VIRTIO_ID_MEDIA was added previously, synchronize the rest of the headers to the same version. Signed-off-by: Albert Esteve <aesteve@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Message-ID: <20260821135038.2676679-1-aesteve@redhat.com>
This commit is contained in:
1 parent
905e8c7e26
commit
80ff7d93b9
6 files changed
+149
-7
No files matched your search
@@ -2015,7 +2015,13 @@ enum ethtool_link_mode_bit_indices {
|
||||
ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
|
||||
ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
|
||||
ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
|
||||
|
||||
/* Despite the "baseCR" in 10000baseCR, this is not an IEEE 802.3 baseCR
|
||||
* It represents SFF-8431 Appendix-E SFP+ Direct Attach (10G-SFI-DA).
|
||||
* The name is kept as-is for uAPI backward compatibility.
|
||||
*/
|
||||
ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
|
||||
|
||||
ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
|
||||
ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
|
||||
ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
|
||||
|
||||
@@ -57,6 +57,7 @@ enum {
|
||||
IOMMUFD_CMD_IOAS_CHANGE_PROCESS = 0x92,
|
||||
IOMMUFD_CMD_VEVENTQ_ALLOC = 0x93,
|
||||
IOMMUFD_CMD_HW_QUEUE_ALLOC = 0x94,
|
||||
IOMMUFD_CMD_IOAS_NOIOMMU_GET_PA = 0x95,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -219,6 +220,33 @@ struct iommu_ioas_map {
|
||||
};
|
||||
#define IOMMU_IOAS_MAP _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_MAP)
|
||||
|
||||
/**
|
||||
* struct iommu_ioas_noiommu_get_pa - ioctl(IOMMU_IOAS_NOIOMMU_GET_PA)
|
||||
* @size: sizeof(struct iommu_ioas_noiommu_get_pa)
|
||||
* @flags: Reserved, must be 0 for now
|
||||
* @ioas_id: IOAS ID to query IOVA to PA mapping from
|
||||
* @__reserved: Must be 0
|
||||
* @iova: IOVA to query
|
||||
* @length: On input, non-zero maximum number of bytes to query starting from
|
||||
* @iova. On output, number of physically contiguous bytes starting
|
||||
* from @out_phys, capped by the input length.
|
||||
* @out_phys: Output physical address the IOVA maps to
|
||||
*
|
||||
* Query the physical address backing an IOVA range. The beginning of the
|
||||
* range must be mapped already and length must be non-zero. For noiommu
|
||||
* devices doing unsafe DMA only.
|
||||
*/
|
||||
struct iommu_ioas_noiommu_get_pa {
|
||||
__u32 size;
|
||||
__u32 flags;
|
||||
__u32 ioas_id;
|
||||
__u32 __reserved;
|
||||
__aligned_u64 iova;
|
||||
__aligned_u64 length;
|
||||
__aligned_u64 out_phys;
|
||||
};
|
||||
#define IOMMU_IOAS_NOIOMMU_GET_PA _IO(IOMMUFD_TYPE, IOMMUFD_CMD_IOAS_NOIOMMU_GET_PA)
|
||||
|
||||
/**
|
||||
* struct iommu_ioas_map_file - ioctl(IOMMU_IOAS_MAP_FILE)
|
||||
* @size: sizeof(struct iommu_ioas_map_file)
|
||||
@@ -574,11 +602,22 @@ struct iommu_hw_info_vtd {
|
||||
__aligned_u64 ecap_reg;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum iommu_hw_info_arm_smmuv3_flags - Flags for ARM SMMUv3 hw_info
|
||||
* @IOMMU_HW_INFO_ARM_SMMUV3_ERRATA_REPEAT_TLBI_CFGI:
|
||||
* If set, user space must issue TLBI/CFGI+SYNC commands twice due to
|
||||
* hardware erratum T264-SMMU-3. See the description at
|
||||
* arm_smmu_erratum_repeat_tlbi_cfgi_key.
|
||||
*/
|
||||
enum iommu_hw_info_arm_smmuv3_flags {
|
||||
IOMMU_HW_INFO_ARM_SMMUV3_ERRATA_REPEAT_TLBI_CFGI = 1 << 0,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct iommu_hw_info_arm_smmuv3 - ARM SMMUv3 hardware information
|
||||
* (IOMMU_HW_INFO_TYPE_ARM_SMMUV3)
|
||||
*
|
||||
* @flags: Must be set to 0
|
||||
* @flags: Combination of enum iommu_hw_info_arm_smmuv3_flags
|
||||
* @__reserved: Must be 0
|
||||
* @idr: Implemented features for ARM SMMU Non-secure programming interface
|
||||
* @iidr: Information about the implementation and implementer of ARM SMMU,
|
||||
@@ -594,7 +633,7 @@ struct iommu_hw_info_vtd {
|
||||
* 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
|
||||
* idr[5]: VAX, GRAN64K, GRAN16K, GRAN4K, DS
|
||||
*
|
||||
* - 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
|
||||
@@ -602,7 +641,7 @@ struct iommu_hw_info_vtd {
|
||||
* - 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
|
||||
* This list may expand in future (eg E0PD, AIE, PBHA, D128 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,
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
#define UFFD_API ((__u64)0xAA)
|
||||
#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | \
|
||||
UFFDIO_REGISTER_MODE_WP | \
|
||||
UFFDIO_REGISTER_MODE_MINOR)
|
||||
UFFDIO_REGISTER_MODE_MINOR | \
|
||||
UFFDIO_REGISTER_MODE_RWP)
|
||||
#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | \
|
||||
UFFD_FEATURE_EVENT_FORK | \
|
||||
UFFD_FEATURE_EVENT_REMAP | \
|
||||
@@ -42,10 +43,13 @@
|
||||
UFFD_FEATURE_WP_UNPOPULATED | \
|
||||
UFFD_FEATURE_POISON | \
|
||||
UFFD_FEATURE_WP_ASYNC | \
|
||||
UFFD_FEATURE_MOVE)
|
||||
UFFD_FEATURE_MOVE | \
|
||||
UFFD_FEATURE_RWP | \
|
||||
UFFD_FEATURE_RWP_ASYNC)
|
||||
#define UFFD_API_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_REGISTER | \
|
||||
(__u64)1 << _UFFDIO_UNREGISTER | \
|
||||
(__u64)1 << _UFFDIO_SET_MODE | \
|
||||
(__u64)1 << _UFFDIO_API)
|
||||
#define UFFD_API_RANGE_IOCTLS \
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
@@ -54,13 +58,15 @@
|
||||
(__u64)1 << _UFFDIO_MOVE | \
|
||||
(__u64)1 << _UFFDIO_WRITEPROTECT | \
|
||||
(__u64)1 << _UFFDIO_CONTINUE | \
|
||||
(__u64)1 << _UFFDIO_POISON)
|
||||
(__u64)1 << _UFFDIO_POISON | \
|
||||
(__u64)1 << _UFFDIO_RWPROTECT)
|
||||
#define UFFD_API_RANGE_IOCTLS_BASIC \
|
||||
((__u64)1 << _UFFDIO_WAKE | \
|
||||
(__u64)1 << _UFFDIO_COPY | \
|
||||
(__u64)1 << _UFFDIO_WRITEPROTECT | \
|
||||
(__u64)1 << _UFFDIO_CONTINUE | \
|
||||
(__u64)1 << _UFFDIO_POISON)
|
||||
(__u64)1 << _UFFDIO_POISON | \
|
||||
(__u64)1 << _UFFDIO_RWPROTECT)
|
||||
|
||||
/*
|
||||
* Valid ioctl command number range with this API is from 0x00 to
|
||||
@@ -79,6 +85,8 @@
|
||||
#define _UFFDIO_WRITEPROTECT (0x06)
|
||||
#define _UFFDIO_CONTINUE (0x07)
|
||||
#define _UFFDIO_POISON (0x08)
|
||||
#define _UFFDIO_RWPROTECT (0x09)
|
||||
#define _UFFDIO_SET_MODE (0x0A)
|
||||
#define _UFFDIO_API (0x3F)
|
||||
|
||||
/* userfaultfd ioctl ids */
|
||||
@@ -103,6 +111,10 @@
|
||||
struct uffdio_continue)
|
||||
#define UFFDIO_POISON _IOWR(UFFDIO, _UFFDIO_POISON, \
|
||||
struct uffdio_poison)
|
||||
#define UFFDIO_RWPROTECT _IOWR(UFFDIO, _UFFDIO_RWPROTECT, \
|
||||
struct uffdio_rwprotect)
|
||||
#define UFFDIO_SET_MODE _IOW(UFFDIO, _UFFDIO_SET_MODE, \
|
||||
struct uffdio_set_mode)
|
||||
|
||||
/* read() structure */
|
||||
struct uffd_msg {
|
||||
@@ -158,6 +170,7 @@ struct uffd_msg {
|
||||
#define UFFD_PAGEFAULT_FLAG_WRITE (1<<0) /* If this was a write fault */
|
||||
#define UFFD_PAGEFAULT_FLAG_WP (1<<1) /* If reason is VM_UFFD_WP */
|
||||
#define UFFD_PAGEFAULT_FLAG_MINOR (1<<2) /* If reason is VM_UFFD_MINOR */
|
||||
#define UFFD_PAGEFAULT_FLAG_RWP (1<<3) /* If reason is VM_UFFD_RWP */
|
||||
|
||||
struct uffdio_api {
|
||||
/* userland asks for an API number and the features to enable */
|
||||
@@ -230,6 +243,18 @@ struct uffdio_api {
|
||||
*
|
||||
* UFFD_FEATURE_MOVE indicates that the kernel supports moving an
|
||||
* existing page contents from userspace.
|
||||
*
|
||||
* UFFD_FEATURE_RWP indicates that the kernel supports
|
||||
* UFFDIO_REGISTER_MODE_RWP for read-write protection tracking.
|
||||
* Pages are made inaccessible via UFFDIO_RWPROTECT and faults
|
||||
* are delivered when the pages are re-accessed.
|
||||
*
|
||||
* UFFD_FEATURE_RWP_ASYNC indicates asynchronous mode for
|
||||
* UFFDIO_REGISTER_MODE_RWP. When set, faults on read-write
|
||||
* protected pages are auto-resolved by the kernel (PTE
|
||||
* permissions restored immediately) without delivering a message
|
||||
* to the userfaultfd handler. Use PAGEMAP_SCAN with inverted
|
||||
* PAGE_IS_ACCESSED to find pages that were not re-accessed.
|
||||
*/
|
||||
#define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
|
||||
#define UFFD_FEATURE_EVENT_FORK (1<<1)
|
||||
@@ -248,6 +273,8 @@ struct uffdio_api {
|
||||
#define UFFD_FEATURE_POISON (1<<14)
|
||||
#define UFFD_FEATURE_WP_ASYNC (1<<15)
|
||||
#define UFFD_FEATURE_MOVE (1<<16)
|
||||
#define UFFD_FEATURE_RWP (1<<17)
|
||||
#define UFFD_FEATURE_RWP_ASYNC (1<<18)
|
||||
__u64 features;
|
||||
|
||||
__u64 ioctls;
|
||||
@@ -263,6 +290,7 @@ struct uffdio_register {
|
||||
#define UFFDIO_REGISTER_MODE_MISSING ((__u64)1<<0)
|
||||
#define UFFDIO_REGISTER_MODE_WP ((__u64)1<<1)
|
||||
#define UFFDIO_REGISTER_MODE_MINOR ((__u64)1<<2)
|
||||
#define UFFDIO_REGISTER_MODE_RWP ((__u64)1<<3)
|
||||
__u64 mode;
|
||||
|
||||
/*
|
||||
@@ -356,6 +384,14 @@ struct uffdio_poison {
|
||||
__s64 updated;
|
||||
};
|
||||
|
||||
struct uffdio_rwprotect {
|
||||
struct uffdio_range range;
|
||||
/* !RWP means undo RWP-protection */
|
||||
#define UFFDIO_RWPROTECT_MODE_RWP ((__u64)1<<0)
|
||||
#define UFFDIO_RWPROTECT_MODE_DONTWAKE ((__u64)1<<1)
|
||||
__u64 mode;
|
||||
};
|
||||
|
||||
struct uffdio_move {
|
||||
__u64 dst;
|
||||
__u64 src;
|
||||
@@ -374,6 +410,16 @@ struct uffdio_move {
|
||||
__s64 move;
|
||||
};
|
||||
|
||||
struct uffdio_set_mode {
|
||||
/*
|
||||
* Toggle async mode for features at runtime.
|
||||
* Supported: UFFD_FEATURE_RWP_ASYNC.
|
||||
* Setting a bit in both enable and disable is invalid.
|
||||
*/
|
||||
__u64 enable;
|
||||
__u64 disable;
|
||||
};
|
||||
|
||||
/*
|
||||
* Flags for the userfaultfd(2) system call itself.
|
||||
*/
|
||||
|
||||
@@ -14,6 +14,12 @@
|
||||
|
||||
#define VDUSE_API_VERSION_1 1
|
||||
|
||||
/* The VDUSE instance expects a request for vq ready */
|
||||
#define VDUSE_F_QUEUE_READY 0
|
||||
|
||||
/* The VDUSE instance expects a request for suspend */
|
||||
#define VDUSE_F_SUSPEND 1
|
||||
|
||||
/*
|
||||
* Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).
|
||||
* This is used for future extension.
|
||||
@@ -63,6 +69,12 @@ struct vduse_dev_config {
|
||||
*/
|
||||
#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
|
||||
|
||||
/* Get the VDUSE supported features */
|
||||
#define VDUSE_GET_FEATURES _IOR(VDUSE_BASE, 0x04, __u64)
|
||||
|
||||
/* Set the VDUSE features */
|
||||
#define VDUSE_SET_FEATURES _IOW(VDUSE_BASE, 0x05, __u64)
|
||||
|
||||
/* The ioctls for VDUSE device (/dev/vduse/$NAME) */
|
||||
|
||||
/**
|
||||
@@ -325,6 +337,8 @@ enum vduse_req_type {
|
||||
VDUSE_SET_STATUS,
|
||||
VDUSE_UPDATE_IOTLB,
|
||||
VDUSE_SET_VQ_GROUP_ASID,
|
||||
VDUSE_SET_VQ_READY,
|
||||
VDUSE_SUSPEND,
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -372,6 +386,15 @@ struct vduse_iova_range_v2 {
|
||||
__u32 padding;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct vduse_vq_ready - Virtqueue ready request message
|
||||
* @num: Virtqueue number
|
||||
*/
|
||||
struct vduse_vq_ready {
|
||||
__u32 num;
|
||||
__u32 ready;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct vduse_dev_request - control request
|
||||
* @type: request type
|
||||
@@ -382,6 +405,7 @@ struct vduse_iova_range_v2 {
|
||||
* @iova: IOVA range for updating
|
||||
* @iova_v2: IOVA range for updating if API_VERSION >= 1
|
||||
* @vq_group_asid: ASID of a virtqueue group
|
||||
* @vq_ready: Virtqueue ready request
|
||||
* @padding: padding
|
||||
*
|
||||
* Structure used by read(2) on /dev/vduse/$NAME.
|
||||
@@ -399,6 +423,10 @@ struct vduse_dev_request {
|
||||
*/
|
||||
struct vduse_iova_range_v2 iova_v2;
|
||||
struct vduse_vq_group_asid vq_group_asid;
|
||||
|
||||
/* Only if VDUSE_F_QUEUE_READY is negotiated */
|
||||
struct vduse_vq_ready vq_ready;
|
||||
|
||||
__u32 padding[32];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1534,6 +1534,27 @@ struct vfio_device_feature_dma_buf {
|
||||
*/
|
||||
#define VFIO_DEVICE_FEATURE_MIG_PRECOPY_INFOv2 12
|
||||
|
||||
/**
|
||||
* VFIO_DEVICE_FEATURE_ZPCI_ERROR feature provides PCI error information to
|
||||
* userspace for vfio-pci devices on s390. On s390, PCI error recovery
|
||||
* involves platform firmware and notification to operating systems is done
|
||||
* by architecture specific mechanism. Exposing this information to
|
||||
* userspace allows it to take appropriate actions to handle an
|
||||
* error on the device.
|
||||
*
|
||||
* Userspace provides an opaque buffer of fixed length, and the kernel
|
||||
* fills it with the zpci_ccdf_err data structure. The length of
|
||||
* zpci_ccdf_err is provided to userspace via the
|
||||
* VFIO_DEVICE_INFO_CAP_ZPCI_BASE capability.
|
||||
*
|
||||
* The ioctl returns -ENOMSG if there are no pending PCI errors.
|
||||
*/
|
||||
struct vfio_device_feature_zpci_err {
|
||||
__aligned_u64 data;
|
||||
};
|
||||
|
||||
#define VFIO_DEVICE_FEATURE_ZPCI_ERROR 13
|
||||
|
||||
/* -------- API for Type1 VFIO IOMMU -------- */
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,6 +32,8 @@ struct vfio_device_info_cap_zpci_base {
|
||||
/* End of version 1 */
|
||||
__u32 fh; /* PCI function handle */
|
||||
/* End of version 2 */
|
||||
__u32 ccdf_err_length; /* PCI CCDF length */
|
||||
/* End of version 3 */
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user