History

Merge drm/drm-next into drm-xe-next

Sync to v6.8-rc1.

Lucas De Marchi committed 2 years ago

Commit be3382e2 parents f6bf042 661347610653 files · +461799 −238930Browse files

Showing the changes to include/uapi (67 of 10653 files). Show all

Unified · Split

67 files
  1. include/uapi/asm-generic/unistd.h +14 −1
  2. include/uapi/drm/drm_fourcc.h +5 −5
  3. include/uapi/drm/drm_mode.h +17 −9
  4. include/uapi/drm/habanalabs_accel.h +28 −0
  5. include/uapi/drm/i915_drm.h +6 −6
  6. include/uapi/drm/msm_drm.h +3 −0
  7. include/uapi/linux/android/binder.h +16 −14
  8. include/uapi/linux/batadv_packet.h +39 −6
  9. include/uapi/linux/bpf.h +27 −17
  10. include/uapi/linux/bpfilter.h +0 −21
  11. include/uapi/linux/cxl_mem.h +1 −0
  12. include/uapi/linux/devlink.h +2 −0
  13. include/uapi/linux/dpll.h +1 −0
  14. include/uapi/linux/ethtool.h +28 −13
  15. include/uapi/linux/ethtool_netlink.h +1 −0
  16. include/uapi/linux/fs.h +1 −0
  17. include/uapi/linux/fuse.h +6 −4
  18. include/uapi/linux/if_bridge.h +1 −0
  19. include/uapi/linux/if_link.h +529 −0
  20. include/uapi/linux/if_xdp.h +46 −1
  21. include/uapi/linux/iio/types.h +2 −0
  22. include/uapi/linux/io_uring.h +19 −0
  23. include/uapi/linux/iommufd.h +79 −0
  24. include/uapi/linux/kexec.h +1 −0
  25. include/uapi/linux/kvm.h +50 −90
  26. include/uapi/linux/lsm.h +90 −0
  27. include/uapi/linux/mei.h +2 −2
  28. include/uapi/linux/mount.h +70 −0
  29. include/uapi/linux/mptcp.h +1 −0
  30. include/uapi/linux/mptcp_pm.h +1 −1
  31. include/uapi/linux/netdev.h +78 −2
  32. include/uapi/linux/nl80211.h +140 −45
  33. include/uapi/linux/nsm.h +31 −0
  34. include/uapi/linux/pcitest.h +2 −1
  35. include/uapi/linux/perf_event.h +13 −0
  36. include/uapi/linux/pkt_cls.h +2 −49
  37. include/uapi/linux/pkt_sched.h +0 −109
  38. include/uapi/linux/raid/md_p.h +2 −6
  39. include/uapi/linux/raid/md_u.h +1 −10
  40. include/uapi/linux/resource.h +1 −1
  41. include/uapi/linux/serial.h +11 −8
  42. include/uapi/linux/smc.h +2 −0
  43. include/uapi/linux/smc_diag.h +2 −0
  44. include/uapi/linux/stat.h +1 −0
  45. include/uapi/linux/stddef.h +1 −1
  46. include/uapi/linux/tc_act/tc_ipt.h +0 −20
  47. include/uapi/linux/tc_act/tc_mirred.h +1 −0
  48. include/uapi/linux/thp7312.h +19 −0
  49. include/uapi/linux/usb/functionfs.h +4 −2
  50. include/uapi/linux/userfaultfd.h +28 −1
  51. include/uapi/linux/v4l2-controls.h +6 −0
  52. include/uapi/linux/v4l2-subdev.h +12 −3
  53. include/uapi/linux/vfio.h +1 −0
  54. include/uapi/linux/videodev2.h +9 −2
  55. include/uapi/linux/virtio_config.h +7 −1
  56. include/uapi/linux/virtio_pci.h +68 −0
  57. include/uapi/linux/virtio_pmem.h +7 −0
  58. include/uapi/rdma/bnxt_re-abi.h +41 −0
  59. include/uapi/rdma/efa-abi.h +20 −1
  60. include/uapi/rdma/hns-abi.h +5 −0
  61. include/uapi/rdma/mlx5-abi.h +2 −0
  62. include/uapi/rdma/mlx5_user_ioctl_verbs.h +1 −0
  63. include/uapi/regulator/regulator.h +90 −0
  64. include/uapi/scsi/scsi_bsg_mpi3mr.h +2 −0
  65. include/uapi/sound/asound.h +5 −2
  66. include/uapi/sound/scarlett2.h +54 −0
  67. include/uapi/sound/sof/tokens.h +5 −0
include/uapi/asm-generic/unistd.h+14−1
@@ -829,8 +829,21 @@ __SYSCALL(__NR_futex_wait, sys_futex_wait) · 828 unmodified lines
829829 #define __NR_futex_requeue 456
830830 __SYSCALL(__NR_futex_requeue, sys_futex_requeue)
831831
832+#define __NR_statmount 457
833+__SYSCALL(__NR_statmount, sys_statmount)
834+
835+#define __NR_listmount 458
836+__SYSCALL(__NR_listmount, sys_listmount)
837+
838+#define __NR_lsm_get_self_attr 459
839+__SYSCALL(__NR_lsm_get_self_attr, sys_lsm_get_self_attr)
840+#define __NR_lsm_set_self_attr 460
841+__SYSCALL(__NR_lsm_set_self_attr, sys_lsm_set_self_attr)
842+#define __NR_lsm_list_modules 461
843+__SYSCALL(__NR_lsm_list_modules, sys_lsm_list_modules)
844+
832845 #undef __NR_syscalls
833−#define __NR_syscalls 457
846+#define __NR_syscalls 462
834847
835848 /*
836849 * 32 bit systems traditionally used different
include/uapi/drm/drm_fourcc.h+5−5
@@ -54,7 +54,7 @@ extern "C" { · 53 unmodified lines
5454 * Format modifiers may change any property of the buffer, including the number
5555 * of planes and/or the required allocation size. Format modifiers are
5656 * vendor-namespaced, and as such the relationship between a fourcc code and a
57− * modifier is specific to the modifer being used. For example, some modifiers
57+ * modifier is specific to the modifier being used. For example, some modifiers
5858 * may preserve meaning - such as number of planes - from the fourcc code,
5959 * whereas others may not.
6060 *
@@ -79,7 +79,7 @@ extern "C" { · 18 unmodified lines
7979 * format.
8080 * - Higher-level programs interfacing with KMS/GBM/EGL/Vulkan/etc: these users
8181 * see modifiers as opaque tokens they can check for equality and intersect.
82− * These users musn't need to know to reason about the modifier value
82+ * These users mustn't need to know to reason about the modifier value
8383 * (i.e. they are not expected to extract information out of the modifier).
8484 *
8585 * Vendors should document their modifier usage in as much detail as
@@ -540,7 +540,7 @@ extern "C" { · 454 unmodified lines
540540 * This is a tiled layout using 4Kb tiles in row-major layout.
541541 * Within the tile pixels are laid out in 16 256 byte units / sub-tiles which
542542 * are arranged in four groups (two wide, two high) with column-major layout.
543− * Each group therefore consits out of four 256 byte units, which are also laid
543+ * Each group therefore consists out of four 256 byte units, which are also laid
544544 * out as 2x2 column-major.
545545 * 256 byte units are made out of four 64 byte blocks of pixels, producing
546546 * either a square block or a 2:1 unit.
@@ -1103,7 +1103,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) · 556 unmodified lines
11031103 */
11041104
11051105 /*
1106− * The top 4 bits (out of the 56 bits alloted for specifying vendor specific
1106+ * The top 4 bits (out of the 56 bits allotted for specifying vendor specific
11071107 * modifiers) denote the category for modifiers. Currently we have three
11081108 * categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of
11091109 * sixteen different categories.
@@ -1419,7 +1419,7 @@ drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier) · 309 unmodified lines
14191419 * Amlogic FBC Memory Saving mode
14201420 *
14211421 * Indicates the storage is packed when pixel size is multiple of word
1422− * boudaries, i.e. 8bit should be stored in this mode to save allocation
1422+ * boundaries, i.e. 8bit should be stored in this mode to save allocation
14231423 * memory.
14241424 *
14251425 * This mode reduces body layout to 3072 bytes per 64x32 superblock with
include/uapi/drm/drm_mode.h+17−9
@@ -36,10 +36,10 @@ extern "C" { · 35 unmodified lines
3636 /**
3737 * DOC: overview
3838 *
39− * DRM exposes many UAPI and structure definition to have a consistent
40− * and standardized interface with user.
39+ * DRM exposes many UAPI and structure definitions to have a consistent
40+ * and standardized interface with users.
4141 * Userspace can refer to these structure definitions and UAPI formats
42− * to communicate to driver
42+ * to communicate to drivers.
4343 */
4444
4545 #define DRM_CONNECTOR_NAME_LEN 32
@@ -540,7 +540,7 @@ struct drm_mode_get_connector { · 494 unmodified lines
540540 /* the PROP_ATOMIC flag is used to hide properties from userspace that
541541 * is not aware of atomic properties. This is mostly to work around
542542 * older userspace (DDX drivers) that read/write each prop they find,
543− * witout being aware that this could be triggering a lengthy modeset.
543+ * without being aware that this could be triggering a lengthy modeset.
544544 */
545545 #define DRM_MODE_PROP_ATOMIC 0x80000000
546546
@@ -664,7 +664,7 @@ struct drm_mode_fb_cmd { · 117 unmodified lines
664664 };
665665
666666 #define DRM_MODE_FB_INTERLACED (1<<0) /* for interlaced framebuffers */
667−#define DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifer[] */
667+#define DRM_MODE_FB_MODIFIERS (1<<1) /* enables ->modifier[] */
668668
669669 /**
670670 * struct drm_mode_fb_cmd2 - Frame-buffer metadata.
@@ -846,6 +846,14 @@ struct drm_color_ctm { · 175 unmodified lines
846846 __u64 matrix[9];
847847 };
848848
849+struct drm_color_ctm_3x4 {
850+ /*
851+ * Conversion matrix with 3x4 dimensions in S31.32 sign-magnitude
852+ * (not two's complement!) format.
853+ */
854+ __u64 matrix[12];
855+};
856+
849857 struct drm_color_lut {
850858 /*
851859 * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and
@@ -881,8 +889,8 @@ struct hdr_metadata_infoframe { · 29 unmodified lines
881889 * These are coded as unsigned 16-bit values in units of
882890 * 0.00002, where 0x0000 represents zero and 0xC350
883891 * represents 1.0000.
884− * @display_primaries.x: X cordinate of color primary.
885− * @display_primaries.y: Y cordinate of color primary.
892+ * @display_primaries.x: X coordinate of color primary.
893+ * @display_primaries.y: Y coordinate of color primary.
886894 */
887895 struct {
888896 __u16 x, y;
@@ -892,8 +900,8 @@ struct hdr_metadata_infoframe { · 3 unmodified lines
892900 * These are coded as unsigned 16-bit values in units of
893901 * 0.00002, where 0x0000 represents zero and 0xC350
894902 * represents 1.0000.
895− * @white_point.x: X cordinate of whitepoint of color primary.
896− * @white_point.y: Y cordinate of whitepoint of color primary.
903+ * @white_point.x: X coordinate of whitepoint of color primary.
904+ * @white_point.y: Y coordinate of whitepoint of color primary.
897905 */
898906 struct {
899907 __u16 x, y;
include/uapi/drm/habanalabs_accel.h+28−0
@@ -846,6 +846,7 @@ enum hl_server_type { · 845 unmodified lines
846846 #define HL_INFO_HW_ERR_EVENT 36
847847 #define HL_INFO_FW_ERR_EVENT 37
848848 #define HL_INFO_USER_ENGINE_ERR_EVENT 38
849+#define HL_INFO_DEV_SIGNED 40
849850
850851 #define HL_INFO_VERSION_MAX_LEN 128
851852 #define HL_INFO_CARD_NAME_MAX_LEN 16
@@ -1256,6 +1257,7 @@ struct hl_info_dev_memalloc_page_sizes { · 404 unmodified lines
12561257 #define SEC_SIGNATURE_BUF_SZ 255 /* (256 - 1) 1 byte used for size */
12571258 #define SEC_PUB_DATA_BUF_SZ 510 /* (512 - 2) 2 bytes used for size */
12581259 #define SEC_CERTIFICATE_BUF_SZ 2046 /* (2048 - 2) 2 bytes used for size */
1260+#define SEC_DEV_INFO_BUF_SZ 5120
12591261
12601262 /*
12611263 * struct hl_info_sec_attest - attestation report of the boot
@@ -1290,6 +1292,32 @@ struct hl_info_sec_attest { · 28 unmodified lines
12901292 __u8 pad0[2];
12911293 };
12921294
1295+/*
1296+ * struct hl_info_signed - device information signed by a secured device.
1297+ * @nonce: number only used once. random number provided by host. this also passed to the quote
1298+ * command as a qualifying data.
1299+ * @pub_data_len: length of the public data (bytes)
1300+ * @certificate_len: length of the certificate (bytes)
1301+ * @info_sig_len: length of the attestation signature (bytes)
1302+ * @public_data: public key info signed info data (outPublic + name + qualifiedName)
1303+ * @certificate: certificate for the signing key
1304+ * @info_sig: signature of the info + nonce data.
1305+ * @dev_info_len: length of device info (bytes)
1306+ * @dev_info: device info as byte array.
1307+ */
1308+struct hl_info_signed {
1309+ __u32 nonce;
1310+ __u16 pub_data_len;
1311+ __u16 certificate_len;
1312+ __u8 info_sig_len;
1313+ __u8 public_data[SEC_PUB_DATA_BUF_SZ];
1314+ __u8 certificate[SEC_CERTIFICATE_BUF_SZ];
1315+ __u8 info_sig[SEC_SIGNATURE_BUF_SZ];
1316+ __u16 dev_info_len;
1317+ __u8 dev_info[SEC_DEV_INFO_BUF_SZ];
1318+ __u8 pad[2];
1319+};
1320+
12931321 /**
12941322 * struct hl_page_fault_info - page fault information.
12951323 * @timestamp: timestamp of page fault.
include/uapi/drm/i915_drm.h+6−6
@@ -693,7 +693,7 @@ typedef struct drm_i915_irq_wait { · 692 unmodified lines
693693 #define I915_PARAM_HAS_EXEC_FENCE 44
694694
695695 /* Query whether DRM_I915_GEM_EXECBUFFER2 supports the ability to capture
696− * user specified bufffers for post-mortem debugging of GPU hangs. See
696+ * user-specified buffers for post-mortem debugging of GPU hangs. See
697697 * EXEC_OBJECT_CAPTURE.
698698 */
699699 #define I915_PARAM_HAS_EXEC_CAPTURE 45
@@ -1606,7 +1606,7 @@ struct drm_i915_gem_busy { · 906 unmodified lines
16061606 * is accurate.
16071607 *
16081608 * The returned dword is split into two fields to indicate both
1609− * the engine classess on which the object is being read, and the
1609+ * the engine classes on which the object is being read, and the
16101610 * engine class on which it is currently being written (if any).
16111611 *
16121612 * The low word (bits 0:15) indicate if the object is being written
@@ -1815,7 +1815,7 @@ struct drm_i915_gem_madvise { · 202 unmodified lines
18151815 __u32 handle;
18161816
18171817 /* Advice: either the buffer will be needed again in the near future,
1818− * or wont be and could be discarded under memory pressure.
1818+ * or won't be and could be discarded under memory pressure.
18191819 */
18201820 __u32 madv;
18211821
@@ -3246,7 +3246,7 @@ struct drm_i915_query_topology_info { · 1424 unmodified lines
32463246 * // enough to hold our array of engines. The kernel will fill out the
32473247 * // item.length for us, which is the number of bytes we need.
32483248 * //
3249− * // Alternatively a large buffer can be allocated straight away enabling
3249+ * // Alternatively a large buffer can be allocated straightaway enabling
32503250 * // querying in one pass, in which case item.length should contain the
32513251 * // length of the provided buffer.
32523252 * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
@@ -3256,7 +3256,7 @@ struct drm_i915_query_topology_info { · 3 unmodified lines
32563256 * // Now that we allocated the required number of bytes, we call the ioctl
32573257 * // again, this time with the data_ptr pointing to our newly allocated
32583258 * // blob, which the kernel can then populate with info on all engines.
3259− * item.data_ptr = (uintptr_t)&info,
3259+ * item.data_ptr = (uintptr_t)&info;
32603260 *
32613261 * err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
32623262 * if (err) ...
@@ -3286,7 +3286,7 @@ struct drm_i915_query_topology_info { · 23 unmodified lines
32863286 /**
32873287 * struct drm_i915_engine_info
32883288 *
3289− * Describes one engine and it's capabilities as known to the driver.
3289+ * Describes one engine and its capabilities as known to the driver.
32903290 */
32913291 struct drm_i915_engine_info {
32923292 /** @engine: Engine class and instance. */
include/uapi/drm/msm_drm.h+3−0
@@ -86,6 +86,7 @@ struct drm_msm_timespec { · 85 unmodified lines
8686 #define MSM_PARAM_CMDLINE 0x0d /* WO: override for task cmdline */
8787 #define MSM_PARAM_VA_START 0x0e /* RO: start of valid GPU iova range */
8888 #define MSM_PARAM_VA_SIZE 0x0f /* RO: size of valid GPU iova range (bytes) */
89+#define MSM_PARAM_HIGHEST_BANK_BIT 0x10 /* RO */
8990
9091 /* For backwards compat. The original support for preemption was based on
9192 * a single ring per priority level so # of priority levels equals the #
@@ -139,6 +140,8 @@ struct drm_msm_gem_new { · 47 unmodified lines
139140 #define MSM_INFO_GET_NAME 0x03 /* get debug name, returned by pointer */
140141 #define MSM_INFO_SET_IOVA 0x04 /* set the iova, passed by value */
141142 #define MSM_INFO_GET_FLAGS 0x05 /* get the MSM_BO_x flags */
143+#define MSM_INFO_SET_METADATA 0x06 /* set userspace metadata */
144+#define MSM_INFO_GET_METADATA 0x07 /* get userspace metadata */
142145
143146 struct drm_msm_gem_info {
144147 __u32 handle; /* in */
include/uapi/linux/android/binder.h+16−14
@@ -251,20 +251,22 @@ struct binder_extended_error { · 250 unmodified lines
251251 __s32 param;
252252 };
253253
254−#define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
255−#define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
256−#define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
257−#define BINDER_SET_IDLE_PRIORITY _IOW('b', 6, __s32)
258−#define BINDER_SET_CONTEXT_MGR _IOW('b', 7, __s32)
259−#define BINDER_THREAD_EXIT _IOW('b', 8, __s32)
260−#define BINDER_VERSION _IOWR('b', 9, struct binder_version)
261−#define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
262−#define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
263−#define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
264−#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
265−#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
266−#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
267−#define BINDER_GET_EXTENDED_ERROR _IOWR('b', 17, struct binder_extended_error)
254+enum {
255+ BINDER_WRITE_READ = _IOWR('b', 1, struct binder_write_read),
256+ BINDER_SET_IDLE_TIMEOUT = _IOW('b', 3, __s64),
257+ BINDER_SET_MAX_THREADS = _IOW('b', 5, __u32),
258+ BINDER_SET_IDLE_PRIORITY = _IOW('b', 6, __s32),
259+ BINDER_SET_CONTEXT_MGR = _IOW('b', 7, __s32),
260+ BINDER_THREAD_EXIT = _IOW('b', 8, __s32),
261+ BINDER_VERSION = _IOWR('b', 9, struct binder_version),
262+ BINDER_GET_NODE_DEBUG_INFO = _IOWR('b', 11, struct binder_node_debug_info),
263+ BINDER_GET_NODE_INFO_FOR_REF = _IOWR('b', 12, struct binder_node_info_for_ref),
264+ BINDER_SET_CONTEXT_MGR_EXT = _IOW('b', 13, struct flat_binder_object),
265+ BINDER_FREEZE = _IOW('b', 14, struct binder_freeze_info),
266+ BINDER_GET_FROZEN_INFO = _IOWR('b', 15, struct binder_frozen_status_info),
267+ BINDER_ENABLE_ONEWAY_SPAM_DETECTION = _IOW('b', 16, __u32),
268+ BINDER_GET_EXTENDED_ERROR = _IOWR('b', 17, struct binder_extended_error),
269+};
268270
269271 /*
270272 * NOTE: Two special error codes you should check for when calling
include/uapi/linux/batadv_packet.h+39−6
@@ -116,6 +116,9 @@ enum batadv_icmp_packettype { · 115 unmodified lines
116116 * only need routable IPv4 multicast packets we signed up for explicitly
117117 * @BATADV_MCAST_WANT_NO_RTR6: we have no IPv6 multicast router and therefore
118118 * only need routable IPv6 multicast packets we signed up for explicitly
119+ * @BATADV_MCAST_HAVE_MC_PTYPE_CAPA: we can parse, receive and forward
120+ * batman-adv multicast packets with a multicast tracker TVLV. And all our
121+ * hard interfaces have an MTU of at least 1280 bytes.
119122 */
120123 enum batadv_mcast_flags {
121124 BATADV_MCAST_WANT_ALL_UNSNOOPABLES = 1UL << 0,
@@ -123,6 +126,7 @@ enum batadv_mcast_flags { · 1 unmodified line
123126 BATADV_MCAST_WANT_ALL_IPV6 = 1UL << 2,
124127 BATADV_MCAST_WANT_NO_RTR4 = 1UL << 3,
125128 BATADV_MCAST_WANT_NO_RTR6 = 1UL << 4,
129+ BATADV_MCAST_HAVE_MC_PTYPE_CAPA = 1UL << 5,
126130 };
127131
128132 /* tt data subtypes */
@@ -174,14 +178,16 @@ enum batadv_bla_claimframe { · 45 unmodified lines
174178 * @BATADV_TVLV_TT: translation table tvlv
175179 * @BATADV_TVLV_ROAM: roaming advertisement tvlv
176180 * @BATADV_TVLV_MCAST: multicast capability tvlv
181+ * @BATADV_TVLV_MCAST_TRACKER: multicast tracker tvlv
177182 */
178183 enum batadv_tvlv_type {
179− BATADV_TVLV_GW = 0x01,
180− BATADV_TVLV_DAT = 0x02,
181− BATADV_TVLV_NC = 0x03,
182− BATADV_TVLV_TT = 0x04,
183− BATADV_TVLV_ROAM = 0x05,
184− BATADV_TVLV_MCAST = 0x06,
184+ BATADV_TVLV_GW = 0x01,
185+ BATADV_TVLV_DAT = 0x02,
186+ BATADV_TVLV_NC = 0x03,
187+ BATADV_TVLV_TT = 0x04,
188+ BATADV_TVLV_ROAM = 0x05,
189+ BATADV_TVLV_MCAST = 0x06,
190+ BATADV_TVLV_MCAST_TRACKER = 0x07,
185191 };
186192
187193 #pragma pack(2)
@@ -487,6 +493,25 @@ struct batadv_bcast_packet { · 299 unmodified lines
487493 */
488494 };
489495
496+/**
497+ * struct batadv_mcast_packet - multicast packet for network payload
498+ * @packet_type: batman-adv packet type, part of the general header
499+ * @version: batman-adv protocol version, part of the general header
500+ * @ttl: time to live for this packet, part of the general header
501+ * @reserved: reserved byte for alignment
502+ * @tvlv_len: length of the appended tvlv buffer (in bytes)
503+ */
504+struct batadv_mcast_packet {
505+ __u8 packet_type;
506+ __u8 version;
507+ __u8 ttl;
508+ __u8 reserved;
509+ __be16 tvlv_len;
510+ /* "4 bytes boundary + 2 bytes" long to make the payload after the
511+ * following ethernet header again 4 bytes boundary aligned
512+ */
513+};
514+
490515 /**
491516 * struct batadv_coded_packet - network coded packet
492517 * @packet_type: batman-adv packet type, part of the general header
@@ -628,6 +653,14 @@ struct batadv_tvlv_mcast_data { · 135 unmodified lines
628653 __u8 reserved[3];
629654 };
630655
656+/**
657+ * struct batadv_tvlv_mcast_tracker - payload of a multicast tracker tvlv
658+ * @num_dests: number of subsequent destination originator MAC addresses
659+ */
660+struct batadv_tvlv_mcast_tracker {
661+ __be16 num_dests;
662+};
663+
631664 #pragma pack()
632665
633666 #endif /* _UAPI_LINUX_BATADV_PACKET_H_ */
include/uapi/linux/bpf.h+27−17
@@ -1074,9 +1074,11 @@ enum bpf_link_type { · 1073 unmodified lines
10741074 BPF_LINK_TYPE_TCX = 11,
10751075 BPF_LINK_TYPE_UPROBE_MULTI = 12,
10761076 BPF_LINK_TYPE_NETKIT = 13,
1077− MAX_BPF_LINK_TYPE,
1077+ __MAX_BPF_LINK_TYPE,
10781078 };
10791079
1080+#define MAX_BPF_LINK_TYPE __MAX_BPF_LINK_TYPE
1081+
10801082 enum bpf_perf_event_type {
10811083 BPF_PERF_EVENT_UNSPEC = 0,
10821084 BPF_PERF_EVENT_UPROBE = 1,
@@ -1200,6 +1202,9 @@ enum bpf_perf_event_type { · 117 unmodified lines
12001202 */
12011203 #define BPF_F_XDP_DEV_BOUND_ONLY (1U << 6)
12021204
1205+/* The verifier internal test flag. Behavior is undefined */
1206+#define BPF_F_TEST_REG_INVARIANTS (1U << 7)
1207+
12031208 /* link_create.kprobe_multi.flags used in LINK_CREATE command for
12041209 * BPF_TRACE_KPROBE_MULTI attach type to create return probe.
12051210 */
@@ -4517,6 +4522,8 @@ union bpf_attr { · 3311 unmodified lines
45174522 * long bpf_get_task_stack(struct task_struct *task, void *buf, u32 size, u64 flags)
45184523 * Description
45194524 * Return a user or a kernel stack in bpf program provided buffer.
4525+ * Note: the user stack will only be populated if the *task* is
4526+ * the current task; all other tasks will return -EOPNOTSUPP.
45204527 * To achieve this, the helper needs *task*, which is a valid
45214528 * pointer to **struct task_struct**. To store the stacktrace, the
45224529 * bpf program provides *buf* with a nonnegative *size*.
@@ -4528,6 +4535,7 @@ union bpf_attr { · 5 unmodified lines
45284535 *
45294536 * **BPF_F_USER_STACK**
45304537 * Collect a user space stack instead of a kernel stack.
4538+ * The *task* must be the current task.
45314539 * **BPF_F_USER_BUILD_ID**
45324540 * Collect buildid+offset instead of ips for user stack,
45334541 * only valid if **BPF_F_USER_STACK** is also specified.
@@ -6556,6 +6564,16 @@ struct bpf_link_info { · 2022 unmodified lines
65566564 __u32 flags;
65576565 __u64 missed;
65586566 } kprobe_multi;
6567+ struct {
6568+ __aligned_u64 path;
6569+ __aligned_u64 offsets;
6570+ __aligned_u64 ref_ctr_offsets;
6571+ __aligned_u64 cookies;
6572+ __u32 path_size; /* in/out: real path size on success, including zero byte */
6573+ __u32 count; /* in/out: uprobe_multi offsets/ref_ctr_offsets/cookies count */
6574+ __u32 flags;
6575+ __u32 pid;
6576+ } uprobe_multi;
65596577 struct {
65606578 __u32 type; /* enum bpf_perf_event_type */
65616579 __u32 :32;
@@ -6886,6 +6904,7 @@ enum { · 324 unmodified lines
68866904 BPF_TCP_LISTEN,
68876905 BPF_TCP_CLOSING, /* Now a valid state */
68886906 BPF_TCP_NEW_SYN_RECV,
6907+ BPF_TCP_BOUND_INACTIVE,
68896908
68906909 BPF_TCP_MAX_STATES /* Leave at the end! */
68916910 };
@@ -7151,40 +7170,31 @@ struct bpf_spin_lock { · 259 unmodified lines
71517170 };
71527171
71537172 struct bpf_timer {
7154− __u64 :64;
7155− __u64 :64;
7173+ __u64 __opaque[2];
71567174 } __attribute__((aligned(8)));
71577175
71587176 struct bpf_dynptr {
7159− __u64 :64;
7160− __u64 :64;
7177+ __u64 __opaque[2];
71617178 } __attribute__((aligned(8)));
71627179
71637180 struct bpf_list_head {
7164− __u64 :64;
7165− __u64 :64;
7181+ __u64 __opaque[2];
71667182 } __attribute__((aligned(8)));
71677183
71687184 struct bpf_list_node {
7169− __u64 :64;
7170− __u64 :64;
7171− __u64 :64;
7185+ __u64 __opaque[3];
71727186 } __attribute__((aligned(8)));
71737187
71747188 struct bpf_rb_root {
7175− __u64 :64;
7176− __u64 :64;
7189+ __u64 __opaque[2];
71777190 } __attribute__((aligned(8)));
71787191
71797192 struct bpf_rb_node {
7180− __u64 :64;
7181− __u64 :64;
7182− __u64 :64;
7183− __u64 :64;
7193+ __u64 __opaque[4];
71847194 } __attribute__((aligned(8)));
71857195
71867196 struct bpf_refcount {
7187− __u32 :32;
7197+ __u32 __opaque[1];
71887198 } __attribute__((aligned(4)));
71897199
71907200 struct bpf_sysctl {
include/uapi/linux/bpfilter.h+0−21
@@ -1,21 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−#ifndef _UAPI_LINUX_BPFILTER_H
3−#define _UAPI_LINUX_BPFILTER_H
4−
5−#include <linux/if.h>
6−
7−enum {
8− BPFILTER_IPT_SO_SET_REPLACE = 64,
9− BPFILTER_IPT_SO_SET_ADD_COUNTERS = 65,
10− BPFILTER_IPT_SET_MAX,
11−};
12−
13−enum {
14− BPFILTER_IPT_SO_GET_INFO = 64,
15− BPFILTER_IPT_SO_GET_ENTRIES = 65,
16− BPFILTER_IPT_SO_GET_REVISION_MATCH = 66,
17− BPFILTER_IPT_SO_GET_REVISION_TARGET = 67,
18− BPFILTER_IPT_GET_MAX,
19−};
20−
21−#endif /* _UAPI_LINUX_BPFILTER_H */
include/uapi/linux/cxl_mem.h+1−0
@@ -46,6 +46,7 @@ · 45 unmodified lines
4646 ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), \
4747 ___DEPRECATED(SCAN_MEDIA, "Scan Media"), \
4848 ___DEPRECATED(GET_SCAN_MEDIA, "Get Scan Media Results"), \
49+ ___C(GET_TIMESTAMP, "Get Timestamp"), \
4950 ___C(MAX, "invalid / last command")
5051
5152 #define ___C(a, b) CXL_MEM_COMMAND_ID_##a
include/uapi/linux/devlink.h+2−0
@@ -139,6 +139,8 @@ enum devlink_command { · 138 unmodified lines
139139 DEVLINK_CMD_SELFTESTS_GET, /* can dump */
140140 DEVLINK_CMD_SELFTESTS_RUN,
141141
142+ DEVLINK_CMD_NOTIFY_FILTER_SET,
143+
142144 /* add new commands above here */
143145 __DEVLINK_CMD_MAX,
144146 DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
include/uapi/linux/dpll.h+1−0
@@ -179,6 +179,7 @@ enum dpll_a_pin { · 178 unmodified lines
179179 DPLL_A_PIN_PHASE_ADJUST_MAX,
180180 DPLL_A_PIN_PHASE_ADJUST,
181181 DPLL_A_PIN_PHASE_OFFSET,
182+ DPLL_A_PIN_FRACTIONAL_FREQUENCY_OFFSET,
182183
183184 __DPLL_A_PIN_MAX,
184185 DPLL_A_PIN_MAX = (__DPLL_A_PIN_MAX - 1)
include/uapi/linux/ethtool.h+28−13
@@ -1266,6 +1266,8 @@ struct ethtool_rxfh_indir { · 1265 unmodified lines
12661266 * hardware hash key.
12671267 * @hfunc: Defines the current RSS hash function used by HW (or to be set to).
12681268 * Valid values are one of the %ETH_RSS_HASH_*.
1269+ * @input_xfrm: Defines how the input data is transformed. Valid values are one
1270+ * of %RXH_XFRM_*.
12691271 * @rsvd8: Reserved for future use; see the note on reserved space.
12701272 * @rsvd32: Reserved for future use; see the note on reserved space.
12711273 * @rss_config: RX ring/queue index for each hash value i.e., indirection table
@@ -1285,7 +1287,8 @@ struct ethtool_rxfh { · 13 unmodified lines
12851287 __u32 indir_size;
12861288 __u32 key_size;
12871289 __u8 hfunc;
1288− __u8 rsvd8[3];
1290+ __u8 input_xfrm;
1291+ __u8 rsvd8[2];
12891292 __u32 rsvd32;
12901293 __u32 rss_config[];
12911294 };
@@ -1992,6 +1995,15 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 700 unmodified lines
19921995
19931996 #define WOL_MODE_COUNT 8
19941997
1998+/* RSS hash function data
1999+ * XOR the corresponding source and destination fields of each specified
2000+ * protocol. Both copies of the XOR'ed fields are fed into the RSS and RXHASH
2001+ * calculation. Note that this XORing reduces the input set entropy and could
2002+ * be exploited to reduce the RSS queue spread.
2003+ */
2004+#define RXH_XFRM_SYM_XOR (1 << 0)
2005+#define RXH_XFRM_NO_CHANGE 0xff
2006+
19952007 /* L2-L4 network traffic flow types */
19962008 #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
19972009 #define UDP_V4_FLOW 0x02 /* hash or spec (udp_ip4_spec) */
@@ -2128,18 +2140,6 @@ enum ethtool_reset_flags { · 130 unmodified lines
21282140 * refused. For drivers: ignore this field (use kernel's
21292141 * __ETHTOOL_LINK_MODE_MASK_NBITS instead), any change to it will
21302142 * be overwritten by kernel.
2131− * @supported: Bitmap with each bit meaning given by
2132− * %ethtool_link_mode_bit_indices for the link modes, physical
2133− * connectors and other link features for which the interface
2134− * supports autonegotiation or auto-detection. Read-only.
2135− * @advertising: Bitmap with each bit meaning given by
2136− * %ethtool_link_mode_bit_indices for the link modes, physical
2137− * connectors and other link features that are advertised through
2138− * autonegotiation or enabled for auto-detection.
2139− * @lp_advertising: Bitmap with each bit meaning given by
2140− * %ethtool_link_mode_bit_indices for the link modes, and other
2141− * link features that the link partner advertised through
2142− * autonegotiation; 0 if unknown or not applicable. Read-only.
21432143 * @transceiver: Used to distinguish different possible PHY types,
21442144 * reported consistently by PHYLIB. Read-only.
21452145 * @master_slave_cfg: Master/slave port mode.
@@ -2181,6 +2181,21 @@ enum ethtool_reset_flags { · 35 unmodified lines
21812181 * %set_link_ksettings() should validate all fields other than @cmd
21822182 * and @link_mode_masks_nwords that are not described as read-only or
21832183 * deprecated, and must ignore all fields described as read-only.
2184+ *
2185+ * @link_mode_masks is divided into three bitfields, each of length
2186+ * @link_mode_masks_nwords:
2187+ * - supported: Bitmap with each bit meaning given by
2188+ * %ethtool_link_mode_bit_indices for the link modes, physical
2189+ * connectors and other link features for which the interface
2190+ * supports autonegotiation or auto-detection. Read-only.
2191+ * - advertising: Bitmap with each bit meaning given by
2192+ * %ethtool_link_mode_bit_indices for the link modes, physical
2193+ * connectors and other link features that are advertised through
2194+ * autonegotiation or enabled for auto-detection.
2195+ * - lp_advertising: Bitmap with each bit meaning given by
2196+ * %ethtool_link_mode_bit_indices for the link modes, and other
2197+ * link features that the link partner advertised through
2198+ * autonegotiation; 0 if unknown or not applicable. Read-only.
21842199 */
21852200 struct ethtool_link_settings {
21862201 __u32 cmd;
include/uapi/linux/ethtool_netlink.h+1−0
@@ -908,6 +908,7 @@ enum { · 907 unmodified lines
908908 ETHTOOL_A_RSS_HFUNC, /* u32 */
909909 ETHTOOL_A_RSS_INDIR, /* binary */
910910 ETHTOOL_A_RSS_HKEY, /* binary */
911+ ETHTOOL_A_RSS_INPUT_XFRM, /* u32 */
911912
912913 __ETHTOOL_A_RSS_CNT,
913914 ETHTOOL_A_RSS_MAX = (__ETHTOOL_A_RSS_CNT - 1),
include/uapi/linux/fs.h+1−0
@@ -316,6 +316,7 @@ typedef int __bitwise __kernel_rwf_t; · 315 unmodified lines
316316 #define PAGE_IS_SWAPPED (1 << 4)
317317 #define PAGE_IS_PFNZERO (1 << 5)
318318 #define PAGE_IS_HUGE (1 << 6)
319+#define PAGE_IS_SOFT_DIRTY (1 << 7)
319320
320321 /*
321322 * struct page_region - Page region with flags
include/uapi/linux/fuse.h+6−4
@@ -209,7 +209,7 @@ · 208 unmodified lines
209209 * - add FUSE_HAS_EXPIRE_ONLY
210210 *
211211 * 7.39
212− * - add FUSE_DIRECT_IO_RELAX
212+ * - add FUSE_DIRECT_IO_ALLOW_MMAP
213213 * - add FUSE_STATX and related structures
214214 */
215215
@@ -409,8 +409,7 @@ struct fuse_file_lock { · 193 unmodified lines
409409 * FUSE_CREATE_SUPP_GROUP: add supplementary group info to create, mkdir,
410410 * symlink and mknod (single group that matches parent)
411411 * FUSE_HAS_EXPIRE_ONLY: kernel supports expiry-only entry invalidation
412− * FUSE_DIRECT_IO_RELAX: relax restrictions in FOPEN_DIRECT_IO mode, for now
413− * allow shared mmap
412+ * FUSE_DIRECT_IO_ALLOW_MMAP: allow shared mmap in FOPEN_DIRECT_IO mode.
414413 */
415414 #define FUSE_ASYNC_READ (1 << 0)
416415 #define FUSE_POSIX_LOCKS (1 << 1)
@@ -449,7 +448,10 @@ struct fuse_file_lock { · 32 unmodified lines
449448 #define FUSE_HAS_INODE_DAX (1ULL << 33)
450449 #define FUSE_CREATE_SUPP_GROUP (1ULL << 34)
451450 #define FUSE_HAS_EXPIRE_ONLY (1ULL << 35)
452−#define FUSE_DIRECT_IO_RELAX (1ULL << 36)
451+#define FUSE_DIRECT_IO_ALLOW_MMAP (1ULL << 36)
452+
453+/* Obsolete alias for FUSE_DIRECT_IO_ALLOW_MMAP */
454+#define FUSE_DIRECT_IO_RELAX FUSE_DIRECT_IO_ALLOW_MMAP
453455
454456 /**
455457 * CUSE INIT request/reply flags
include/uapi/linux/if_bridge.h+1−0
@@ -757,6 +757,7 @@ enum { · 756 unmodified lines
757757 MDBE_ATTR_VNI,
758758 MDBE_ATTR_IFINDEX,
759759 MDBE_ATTR_SRC_VNI,
760+ MDBE_ATTR_STATE_MASK,
760761 __MDBE_ATTR_MAX,
761762 };
762763 #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1)
include/uapi/linux/if_link.h+529−0
@@ -461,6 +461,286 @@ enum in6_addr_gen_mode { · 460 unmodified lines
461461
462462 /* Bridge section */
463463
464+/**
465+ * DOC: Bridge enum definition
466+ *
467+ * Please *note* that the timer values in the following section are expected
468+ * in clock_t format, which is seconds multiplied by USER_HZ (generally
469+ * defined as 100).
470+ *
471+ * @IFLA_BR_FORWARD_DELAY
472+ * The bridge forwarding delay is the time spent in LISTENING state
473+ * (before moving to LEARNING) and in LEARNING state (before moving
474+ * to FORWARDING). Only relevant if STP is enabled.
475+ *
476+ * The valid values are between (2 * USER_HZ) and (30 * USER_HZ).
477+ * The default value is (15 * USER_HZ).
478+ *
479+ * @IFLA_BR_HELLO_TIME
480+ * The time between hello packets sent by the bridge, when it is a root
481+ * bridge or a designated bridge. Only relevant if STP is enabled.
482+ *
483+ * The valid values are between (1 * USER_HZ) and (10 * USER_HZ).
484+ * The default value is (2 * USER_HZ).
485+ *
486+ * @IFLA_BR_MAX_AGE
487+ * The hello packet timeout is the time until another bridge in the
488+ * spanning tree is assumed to be dead, after reception of its last hello
489+ * message. Only relevant if STP is enabled.
490+ *
491+ * The valid values are between (6 * USER_HZ) and (40 * USER_HZ).
492+ * The default value is (20 * USER_HZ).
493+ *
494+ * @IFLA_BR_AGEING_TIME
495+ * Configure the bridge's FDB entries aging time. It is the time a MAC
496+ * address will be kept in the FDB after a packet has been received from
497+ * that address. After this time has passed, entries are cleaned up.
498+ * Allow values outside the 802.1 standard specification for special cases:
499+ *
500+ * * 0 - entry never ages (all permanent)
501+ * * 1 - entry disappears (no persistence)
502+ *
503+ * The default value is (300 * USER_HZ).
504+ *
505+ * @IFLA_BR_STP_STATE
506+ * Turn spanning tree protocol on (*IFLA_BR_STP_STATE* > 0) or off
507+ * (*IFLA_BR_STP_STATE* == 0) for this bridge.
508+ *
509+ * The default value is 0 (disabled).
510+ *
511+ * @IFLA_BR_PRIORITY
512+ * Set this bridge's spanning tree priority, used during STP root bridge
513+ * election.
514+ *
515+ * The valid values are between 0 and 65535.
516+ *
517+ * @IFLA_BR_VLAN_FILTERING
518+ * Turn VLAN filtering on (*IFLA_BR_VLAN_FILTERING* > 0) or off
519+ * (*IFLA_BR_VLAN_FILTERING* == 0). When disabled, the bridge will not
520+ * consider the VLAN tag when handling packets.
521+ *
522+ * The default value is 0 (disabled).
523+ *
524+ * @IFLA_BR_VLAN_PROTOCOL
525+ * Set the protocol used for VLAN filtering.
526+ *
527+ * The valid values are 0x8100(802.1Q) or 0x88A8(802.1AD). The default value
528+ * is 0x8100(802.1Q).
529+ *
530+ * @IFLA_BR_GROUP_FWD_MASK
531+ * The group forwarding mask. This is the bitmask that is applied to
532+ * decide whether to forward incoming frames destined to link-local
533+ * addresses (of the form 01:80:C2:00:00:0X).
534+ *
535+ * The default value is 0, which means the bridge does not forward any
536+ * link-local frames coming on this port.
537+ *
538+ * @IFLA_BR_ROOT_ID
539+ * The bridge root id, read only.
540+ *
541+ * @IFLA_BR_BRIDGE_ID
542+ * The bridge id, read only.
543+ *
544+ * @IFLA_BR_ROOT_PORT
545+ * The bridge root port, read only.
546+ *
547+ * @IFLA_BR_ROOT_PATH_COST
548+ * The bridge root path cost, read only.
549+ *
550+ * @IFLA_BR_TOPOLOGY_CHANGE
551+ * The bridge topology change, read only.
552+ *
553+ * @IFLA_BR_TOPOLOGY_CHANGE_DETECTED
554+ * The bridge topology change detected, read only.
555+ *
556+ * @IFLA_BR_HELLO_TIMER
557+ * The bridge hello timer, read only.
558+ *
559+ * @IFLA_BR_TCN_TIMER
560+ * The bridge tcn timer, read only.
561+ *
562+ * @IFLA_BR_TOPOLOGY_CHANGE_TIMER
563+ * The bridge topology change timer, read only.
564+ *
565+ * @IFLA_BR_GC_TIMER
566+ * The bridge gc timer, read only.
567+ *
568+ * @IFLA_BR_GROUP_ADDR
569+ * Set the MAC address of the multicast group this bridge uses for STP.
570+ * The address must be a link-local address in standard Ethernet MAC address
571+ * format. It is an address of the form 01:80:C2:00:00:0X, with X in [0, 4..f].
572+ *
573+ * The default value is 0.
574+ *
575+ * @IFLA_BR_FDB_FLUSH
576+ * Flush bridge's fdb dynamic entries.
577+ *
578+ * @IFLA_BR_MCAST_ROUTER
579+ * Set bridge's multicast router if IGMP snooping is enabled.
580+ * The valid values are:
581+ *
582+ * * 0 - disabled.
583+ * * 1 - automatic (queried).
584+ * * 2 - permanently enabled.
585+ *
586+ * The default value is 1.
587+ *
588+ * @IFLA_BR_MCAST_SNOOPING
589+ * Turn multicast snooping on (*IFLA_BR_MCAST_SNOOPING* > 0) or off
590+ * (*IFLA_BR_MCAST_SNOOPING* == 0).
591+ *
592+ * The default value is 1.
593+ *
594+ * @IFLA_BR_MCAST_QUERY_USE_IFADDR
595+ * If enabled use the bridge's own IP address as source address for IGMP
596+ * queries (*IFLA_BR_MCAST_QUERY_USE_IFADDR* > 0) or the default of 0.0.0.0
597+ * (*IFLA_BR_MCAST_QUERY_USE_IFADDR* == 0).
598+ *
599+ * The default value is 0 (disabled).
600+ *
601+ * @IFLA_BR_MCAST_QUERIER
602+ * Enable (*IFLA_BR_MULTICAST_QUERIER* > 0) or disable
603+ * (*IFLA_BR_MULTICAST_QUERIER* == 0) IGMP querier, ie sending of multicast
604+ * queries by the bridge.
605+ *
606+ * The default value is 0 (disabled).
607+ *
608+ * @IFLA_BR_MCAST_HASH_ELASTICITY
609+ * Set multicast database hash elasticity, It is the maximum chain length in
610+ * the multicast hash table. This attribute is *deprecated* and the value
611+ * is always 16.
612+ *
613+ * @IFLA_BR_MCAST_HASH_MAX
614+ * Set maximum size of the multicast hash table
615+ *
616+ * The default value is 4096, the value must be a power of 2.
617+ *
618+ * @IFLA_BR_MCAST_LAST_MEMBER_CNT
619+ * The Last Member Query Count is the number of Group-Specific Queries
620+ * sent before the router assumes there are no local members. The Last
621+ * Member Query Count is also the number of Group-and-Source-Specific
622+ * Queries sent before the router assumes there are no listeners for a
623+ * particular source.
624+ *
625+ * The default value is 2.
626+ *
627+ * @IFLA_BR_MCAST_STARTUP_QUERY_CNT
628+ * The Startup Query Count is the number of Queries sent out on startup,
629+ * separated by the Startup Query Interval.
630+ *
631+ * The default value is 2.
632+ *
633+ * @IFLA_BR_MCAST_LAST_MEMBER_INTVL
634+ * The Last Member Query Interval is the Max Response Time inserted into
635+ * Group-Specific Queries sent in response to Leave Group messages, and
636+ * is also the amount of time between Group-Specific Query messages.
637+ *
638+ * The default value is (1 * USER_HZ).
639+ *
640+ * @IFLA_BR_MCAST_MEMBERSHIP_INTVL
641+ * The interval after which the bridge will leave a group, if no membership
642+ * reports for this group are received.
643+ *
644+ * The default value is (260 * USER_HZ).
645+ *
646+ * @IFLA_BR_MCAST_QUERIER_INTVL
647+ * The interval between queries sent by other routers. if no queries are
648+ * seen after this delay has passed, the bridge will start to send its own
649+ * queries (as if *IFLA_BR_MCAST_QUERIER_INTVL* was enabled).
650+ *
651+ * The default value is (255 * USER_HZ).
652+ *
653+ * @IFLA_BR_MCAST_QUERY_INTVL
654+ * The Query Interval is the interval between General Queries sent by
655+ * the Querier.
656+ *
657+ * The default value is (125 * USER_HZ). The minimum value is (1 * USER_HZ).
658+ *
659+ * @IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
660+ * The Max Response Time used to calculate the Max Resp Code inserted
661+ * into the periodic General Queries.
662+ *
663+ * The default value is (10 * USER_HZ).
664+ *
665+ * @IFLA_BR_MCAST_STARTUP_QUERY_INTVL
666+ * The interval between queries in the startup phase.
667+ *
668+ * The default value is (125 * USER_HZ) / 4. The minimum value is (1 * USER_HZ).
669+ *
670+ * @IFLA_BR_NF_CALL_IPTABLES
671+ * Enable (*NF_CALL_IPTABLES* > 0) or disable (*NF_CALL_IPTABLES* == 0)
672+ * iptables hooks on the bridge.
673+ *
674+ * The default value is 0 (disabled).
675+ *
676+ * @IFLA_BR_NF_CALL_IP6TABLES
677+ * Enable (*NF_CALL_IP6TABLES* > 0) or disable (*NF_CALL_IP6TABLES* == 0)
678+ * ip6tables hooks on the bridge.
679+ *
680+ * The default value is 0 (disabled).
681+ *
682+ * @IFLA_BR_NF_CALL_ARPTABLES
683+ * Enable (*NF_CALL_ARPTABLES* > 0) or disable (*NF_CALL_ARPTABLES* == 0)
684+ * arptables hooks on the bridge.
685+ *
686+ * The default value is 0 (disabled).
687+ *
688+ * @IFLA_BR_VLAN_DEFAULT_PVID
689+ * VLAN ID applied to untagged and priority-tagged incoming packets.
690+ *
691+ * The default value is 1. Setting to the special value 0 makes all ports of
692+ * this bridge not have a PVID by default, which means that they will
693+ * not accept VLAN-untagged traffic.
694+ *
695+ * @IFLA_BR_PAD
696+ * Bridge attribute padding type for netlink message.
697+ *
698+ * @IFLA_BR_VLAN_STATS_ENABLED
699+ * Enable (*IFLA_BR_VLAN_STATS_ENABLED* == 1) or disable
700+ * (*IFLA_BR_VLAN_STATS_ENABLED* == 0) per-VLAN stats accounting.
701+ *
702+ * The default value is 0 (disabled).
703+ *
704+ * @IFLA_BR_MCAST_STATS_ENABLED
705+ * Enable (*IFLA_BR_MCAST_STATS_ENABLED* > 0) or disable
706+ * (*IFLA_BR_MCAST_STATS_ENABLED* == 0) multicast (IGMP/MLD) stats
707+ * accounting.
708+ *
709+ * The default value is 0 (disabled).
710+ *
711+ * @IFLA_BR_MCAST_IGMP_VERSION
712+ * Set the IGMP version.
713+ *
714+ * The valid values are 2 and 3. The default value is 2.
715+ *
716+ * @IFLA_BR_MCAST_MLD_VERSION
717+ * Set the MLD version.
718+ *
719+ * The valid values are 1 and 2. The default value is 1.
720+ *
721+ * @IFLA_BR_VLAN_STATS_PER_PORT
722+ * Enable (*IFLA_BR_VLAN_STATS_PER_PORT* == 1) or disable
723+ * (*IFLA_BR_VLAN_STATS_PER_PORT* == 0) per-VLAN per-port stats accounting.
724+ * Can be changed only when there are no port VLANs configured.
725+ *
726+ * The default value is 0 (disabled).
727+ *
728+ * @IFLA_BR_MULTI_BOOLOPT
729+ * The multi_boolopt is used to control new boolean options to avoid adding
730+ * new netlink attributes. You can look at ``enum br_boolopt_id`` for those
731+ * options.
732+ *
733+ * @IFLA_BR_MCAST_QUERIER_STATE
734+ * Bridge mcast querier states, read only.
735+ *
736+ * @IFLA_BR_FDB_N_LEARNED
737+ * The number of dynamically learned FDB entries for the current bridge,
738+ * read only.
739+ *
740+ * @IFLA_BR_FDB_MAX_LEARNED
741+ * Set the number of max dynamically learned FDB entries for the current
742+ * bridge.
743+ */
464744 enum {
465745 IFLA_BR_UNSPEC,
466746 IFLA_BR_FORWARD_DELAY,
@@ -522,11 +802,252 @@ struct ifla_bridge_id { · 55 unmodified lines
522802 __u8 addr[6]; /* ETH_ALEN */
523803 };
524804
805+/**
806+ * DOC: Bridge mode enum definition
807+ *
808+ * @BRIDGE_MODE_HAIRPIN
809+ * Controls whether traffic may be sent back out of the port on which it
810+ * was received. This option is also called reflective relay mode, and is
811+ * used to support basic VEPA (Virtual Ethernet Port Aggregator)
812+ * capabilities. By default, this flag is turned off and the bridge will
813+ * not forward traffic back out of the receiving port.
814+ */
525815 enum {
526816 BRIDGE_MODE_UNSPEC,
527817 BRIDGE_MODE_HAIRPIN,
528818 };
529819
820+/**
821+ * DOC: Bridge port enum definition
822+ *
823+ * @IFLA_BRPORT_STATE
824+ * The operation state of the port. Here are the valid values.
825+ *
826+ * * 0 - port is in STP *DISABLED* state. Make this port completely
827+ * inactive for STP. This is also called BPDU filter and could be used
828+ * to disable STP on an untrusted port, like a leaf virtual device.
829+ * The traffic forwarding is also stopped on this port.
830+ * * 1 - port is in STP *LISTENING* state. Only valid if STP is enabled
831+ * on the bridge. In this state the port listens for STP BPDUs and
832+ * drops all other traffic frames.
833+ * * 2 - port is in STP *LEARNING* state. Only valid if STP is enabled on
834+ * the bridge. In this state the port will accept traffic only for the
835+ * purpose of updating MAC address tables.
836+ * * 3 - port is in STP *FORWARDING* state. Port is fully active.
837+ * * 4 - port is in STP *BLOCKING* state. Only valid if STP is enabled on
838+ * the bridge. This state is used during the STP election process.
839+ * In this state, port will only process STP BPDUs.
840+ *
841+ * @IFLA_BRPORT_PRIORITY
842+ * The STP port priority. The valid values are between 0 and 255.
843+ *
844+ * @IFLA_BRPORT_COST
845+ * The STP path cost of the port. The valid values are between 1 and 65535.
846+ *
847+ * @IFLA_BRPORT_MODE
848+ * Set the bridge port mode. See *BRIDGE_MODE_HAIRPIN* for more details.
849+ *
850+ * @IFLA_BRPORT_GUARD
851+ * Controls whether STP BPDUs will be processed by the bridge port. By
852+ * default, the flag is turned off to allow BPDU processing. Turning this
853+ * flag on will disable the bridge port if a STP BPDU packet is received.
854+ *
855+ * If the bridge has Spanning Tree enabled, hostile devices on the network
856+ * may send BPDU on a port and cause network failure. Setting *guard on*
857+ * will detect and stop this by disabling the port. The port will be
858+ * restarted if the link is brought down, or removed and reattached.
859+ *
860+ * @IFLA_BRPORT_PROTECT
861+ * Controls whether a given port is allowed to become a root port or not.
862+ * Only used when STP is enabled on the bridge. By default the flag is off.
863+ *
864+ * This feature is also called root port guard. If BPDU is received from a
865+ * leaf (edge) port, it should not be elected as root port. This could
866+ * be used if using STP on a bridge and the downstream bridges are not fully
867+ * trusted; this prevents a hostile guest from rerouting traffic.
868+ *
869+ * @IFLA_BRPORT_FAST_LEAVE
870+ * This flag allows the bridge to immediately stop multicast traffic
871+ * forwarding on a port that receives an IGMP Leave message. It is only used
872+ * when IGMP snooping is enabled on the bridge. By default the flag is off.
873+ *
874+ * @IFLA_BRPORT_LEARNING
875+ * Controls whether a given port will learn *source* MAC addresses from
876+ * received traffic or not. Also controls whether dynamic FDB entries
877+ * (which can also be added by software) will be refreshed by incoming
878+ * traffic. By default this flag is on.
879+ *
880+ * @IFLA_BRPORT_UNICAST_FLOOD
881+ * Controls whether unicast traffic for which there is no FDB entry will
882+ * be flooded towards this port. By default this flag is on.
883+ *
884+ * @IFLA_BRPORT_PROXYARP
885+ * Enable proxy ARP on this port.
886+ *
887+ * @IFLA_BRPORT_LEARNING_SYNC
888+ * Controls whether a given port will sync MAC addresses learned on device
889+ * port to bridge FDB.
890+ *
891+ * @IFLA_BRPORT_PROXYARP_WIFI
892+ * Enable proxy ARP on this port which meets extended requirements by
893+ * IEEE 802.11 and Hotspot 2.0 specifications.
894+ *
895+ * @IFLA_BRPORT_ROOT_ID
896+ *
897+ * @IFLA_BRPORT_BRIDGE_ID
898+ *
899+ * @IFLA_BRPORT_DESIGNATED_PORT
900+ *
901+ * @IFLA_BRPORT_DESIGNATED_COST
902+ *
903+ * @IFLA_BRPORT_ID
904+ *
905+ * @IFLA_BRPORT_NO
906+ *
907+ * @IFLA_BRPORT_TOPOLOGY_CHANGE_ACK
908+ *
909+ * @IFLA_BRPORT_CONFIG_PENDING
910+ *
911+ * @IFLA_BRPORT_MESSAGE_AGE_TIMER
912+ *
913+ * @IFLA_BRPORT_FORWARD_DELAY_TIMER
914+ *
915+ * @IFLA_BRPORT_HOLD_TIMER
916+ *
917+ * @IFLA_BRPORT_FLUSH
918+ * Flush bridge ports' fdb dynamic entries.
919+ *
920+ * @IFLA_BRPORT_MULTICAST_ROUTER
921+ * Configure the port's multicast router presence. A port with
922+ * a multicast router will receive all multicast traffic.
923+ * The valid values are:
924+ *
925+ * * 0 disable multicast routers on this port
926+ * * 1 let the system detect the presence of routers (default)
927+ * * 2 permanently enable multicast traffic forwarding on this port
928+ * * 3 enable multicast routers temporarily on this port, not depending
929+ * on incoming queries.
930+ *
931+ * @IFLA_BRPORT_PAD
932+ *
933+ * @IFLA_BRPORT_MCAST_FLOOD
934+ * Controls whether a given port will flood multicast traffic for which
935+ * there is no MDB entry. By default this flag is on.
936+ *
937+ * @IFLA_BRPORT_MCAST_TO_UCAST
938+ * Controls whether a given port will replicate packets using unicast
939+ * instead of multicast. By default this flag is off.
940+ *
941+ * This is done by copying the packet per host and changing the multicast
942+ * destination MAC to a unicast one accordingly.
943+ *
944+ * *mcast_to_unicast* works on top of the multicast snooping feature of the
945+ * bridge. Which means unicast copies are only delivered to hosts which
946+ * are interested in unicast and signaled this via IGMP/MLD reports previously.
947+ *
948+ * This feature is intended for interface types which have a more reliable
949+ * and/or efficient way to deliver unicast packets than broadcast ones
950+ * (e.g. WiFi).
951+ *
952+ * However, it should only be enabled on interfaces where no IGMPv2/MLDv1
953+ * report suppression takes place. IGMP/MLD report suppression issue is
954+ * usually overcome by the network daemon (supplicant) enabling AP isolation
955+ * and by that separating all STAs.
956+ *
957+ * Delivery of STA-to-STA IP multicast is made possible again by enabling
958+ * and utilizing the bridge hairpin mode, which considers the incoming port
959+ * as a potential outgoing port, too (see *BRIDGE_MODE_HAIRPIN* option).
960+ * Hairpin mode is performed after multicast snooping, therefore leading
961+ * to only deliver reports to STAs running a multicast router.
962+ *
963+ * @IFLA_BRPORT_VLAN_TUNNEL
964+ * Controls whether vlan to tunnel mapping is enabled on the port.
965+ * By default this flag is off.
966+ *
967+ * @IFLA_BRPORT_BCAST_FLOOD
968+ * Controls flooding of broadcast traffic on the given port. By default
969+ * this flag is on.
970+ *
971+ * @IFLA_BRPORT_GROUP_FWD_MASK
972+ * Set the group forward mask. This is a bitmask that is applied to
973+ * decide whether to forward incoming frames destined to link-local
974+ * addresses. The addresses of the form are 01:80:C2:00:00:0X (defaults
975+ * to 0, which means the bridge does not forward any link-local frames
976+ * coming on this port).
977+ *
978+ * @IFLA_BRPORT_NEIGH_SUPPRESS
979+ * Controls whether neighbor discovery (arp and nd) proxy and suppression
980+ * is enabled on the port. By default this flag is off.
981+ *
982+ * @IFLA_BRPORT_ISOLATED
983+ * Controls whether a given port will be isolated, which means it will be
984+ * able to communicate with non-isolated ports only. By default this
985+ * flag is off.
986+ *
987+ * @IFLA_BRPORT_BACKUP_PORT
988+ * Set a backup port. If the port loses carrier all traffic will be
989+ * redirected to the configured backup port. Set the value to 0 to disable
990+ * it.
991+ *
992+ * @IFLA_BRPORT_MRP_RING_OPEN
993+ *
994+ * @IFLA_BRPORT_MRP_IN_OPEN
995+ *
996+ * @IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT
997+ * The number of per-port EHT hosts limit. The default value is 512.
998+ * Setting to 0 is not allowed.
999+ *
1000+ * @IFLA_BRPORT_MCAST_EHT_HOSTS_CNT
1001+ * The current number of tracked hosts, read only.
1002+ *
1003+ * @IFLA_BRPORT_LOCKED
1004+ * Controls whether a port will be locked, meaning that hosts behind the
1005+ * port will not be able to communicate through the port unless an FDB
1006+ * entry with the unit's MAC address is in the FDB. The common use case is
1007+ * that hosts are allowed access through authentication with the IEEE 802.1X
1008+ * protocol or based on whitelists. By default this flag is off.
1009+ *
1010+ * Please note that secure 802.1X deployments should always use the
1011+ * *BR_BOOLOPT_NO_LL_LEARN* flag, to not permit the bridge to populate its
1012+ * FDB based on link-local (EAPOL) traffic received on the port.
1013+ *
1014+ * @IFLA_BRPORT_MAB
1015+ * Controls whether a port will use MAC Authentication Bypass (MAB), a
1016+ * technique through which select MAC addresses may be allowed on a locked
1017+ * port, without using 802.1X authentication. Packets with an unknown source
1018+ * MAC address generates a "locked" FDB entry on the incoming bridge port.
1019+ * The common use case is for user space to react to these bridge FDB
1020+ * notifications and optionally replace the locked FDB entry with a normal
1021+ * one, allowing traffic to pass for whitelisted MAC addresses.
1022+ *
1023+ * Setting this flag also requires *IFLA_BRPORT_LOCKED* and
1024+ * *IFLA_BRPORT_LEARNING*. *IFLA_BRPORT_LOCKED* ensures that unauthorized
1025+ * data packets are dropped, and *IFLA_BRPORT_LEARNING* allows the dynamic
1026+ * FDB entries installed by user space (as replacements for the locked FDB
1027+ * entries) to be refreshed and/or aged out.
1028+ *
1029+ * @IFLA_BRPORT_MCAST_N_GROUPS
1030+ *
1031+ * @IFLA_BRPORT_MCAST_MAX_GROUPS
1032+ * Sets the maximum number of MDB entries that can be registered for a
1033+ * given port. Attempts to register more MDB entries at the port than this
1034+ * limit allows will be rejected, whether they are done through netlink
1035+ * (e.g. the bridge tool), or IGMP or MLD membership reports. Setting a
1036+ * limit of 0 disables the limit. The default value is 0.
1037+ *
1038+ * @IFLA_BRPORT_NEIGH_VLAN_SUPPRESS
1039+ * Controls whether neighbor discovery (arp and nd) proxy and suppression is
1040+ * enabled for a given port. By default this flag is off.
1041+ *
1042+ * Note that this option only takes effect when *IFLA_BRPORT_NEIGH_SUPPRESS*
1043+ * is enabled for a given port.
1044+ *
1045+ * @IFLA_BRPORT_BACKUP_NHID
1046+ * The FDB nexthop object ID to attach to packets being redirected to a
1047+ * backup port that has VLAN tunnel mapping enabled (via the
1048+ * *IFLA_BRPORT_VLAN_TUNNEL* option). Setting a value of 0 (default) has
1049+ * the effect of not attaching any ID.
1050+ */
5301051 enum {
5311052 IFLA_BRPORT_UNSPEC,
5321053 IFLA_BRPORT_STATE, /* Spanning tree state */
@@ -856,6 +1377,7 @@ enum { · 323 unmodified lines
8561377 IFLA_VXLAN_DF,
8571378 IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */
8581379 IFLA_VXLAN_LOCALBYPASS,
1380+ IFLA_VXLAN_LABEL_POLICY, /* IPv6 flow label policy; ifla_vxlan_label_policy */
8591381 __IFLA_VXLAN_MAX
8601382 };
8611383 #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1)
@@ -873,6 +1395,13 @@ enum ifla_vxlan_df { · 11 unmodified lines
8731395 VXLAN_DF_MAX = __VXLAN_DF_END - 1,
8741396 };
8751397
1398+enum ifla_vxlan_label_policy {
1399+ VXLAN_LABEL_FIXED = 0,
1400+ VXLAN_LABEL_INHERIT = 1,
1401+ __VXLAN_LABEL_END,
1402+ VXLAN_LABEL_MAX = __VXLAN_LABEL_END - 1,
1403+};
1404+
8761405 /* GENEVE section */
8771406 enum {
8781407 IFLA_GENEVE_UNSPEC,
include/uapi/linux/if_xdp.h+46−1
@@ -33,7 +33,13 @@ · 32 unmodified lines
3333 #define XDP_USE_SG (1 << 4)
3434
3535 /* Flags for xsk_umem_config flags */
36−#define XDP_UMEM_UNALIGNED_CHUNK_FLAG (1 << 0)
36+#define XDP_UMEM_UNALIGNED_CHUNK_FLAG (1 << 0)
37+
38+/* Force checksum calculation in software. Can be used for testing or
39+ * working around potential HW issues. This option causes performance
40+ * degradation and only works in XDP_COPY mode.
41+ */
42+#define XDP_UMEM_TX_SW_CSUM (1 << 1)
3743
3844 struct sockaddr_xdp {
3945 __u16 sxdp_family;
@@ -76,6 +82,7 @@ struct xdp_umem_reg { · 36 unmodified lines
7682 __u32 chunk_size;
7783 __u32 headroom;
7884 __u32 flags;
85+ __u32 tx_metadata_len;
7986 };
8087
8188 struct xdp_statistics {
@@ -105,6 +112,41 @@ struct xdp_options { · 23 unmodified lines
105112 #define XSK_UNALIGNED_BUF_ADDR_MASK \
106113 ((1ULL << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1)
107114
115+/* Request transmit timestamp. Upon completion, put it into tx_timestamp
116+ * field of struct xsk_tx_metadata.
117+ */
118+#define XDP_TXMD_FLAGS_TIMESTAMP (1 << 0)
119+
120+/* Request transmit checksum offload. Checksum start position and offset
121+ * are communicated via csum_start and csum_offset fields of struct
122+ * xsk_tx_metadata.
123+ */
124+#define XDP_TXMD_FLAGS_CHECKSUM (1 << 1)
125+
126+/* AF_XDP offloads request. 'request' union member is consumed by the driver
127+ * when the packet is being transmitted. 'completion' union member is
128+ * filled by the driver when the transmit completion arrives.
129+ */
130+struct xsk_tx_metadata {
131+ __u64 flags;
132+
133+ union {
134+ struct {
135+ /* XDP_TXMD_FLAGS_CHECKSUM */
136+
137+ /* Offset from desc->addr where checksumming should start. */
138+ __u16 csum_start;
139+ /* Offset from csum_start where checksum should be stored. */
140+ __u16 csum_offset;
141+ } request;
142+
143+ struct {
144+ /* XDP_TXMD_FLAGS_TIMESTAMP */
145+ __u64 tx_timestamp;
146+ } completion;
147+ };
148+};
149+
108150 /* Rx/Tx descriptor */
109151 struct xdp_desc {
110152 __u64 addr;
@@ -121,4 +163,7 @@ struct xdp_desc { · 10 unmodified lines
121163 */
122164 #define XDP_PKT_CONTD (1 << 0)
123165
166+/* TX packet carries valid metadata. */
167+#define XDP_TX_METADATA (1 << 1)
168+
124169 #endif /* _LINUX_IF_XDP_H */
include/uapi/linux/iio/types.h+2−0
@@ -91,6 +91,8 @@ enum iio_modifier { · 90 unmodified lines
9191 IIO_MOD_CO2,
9292 IIO_MOD_VOC,
9393 IIO_MOD_LIGHT_UV,
94+ IIO_MOD_LIGHT_UVA,
95+ IIO_MOD_LIGHT_UVB,
9496 IIO_MOD_LIGHT_DUV,
9597 IIO_MOD_PM1,
9698 IIO_MOD_PM2P5,
include/uapi/linux/io_uring.h+19−0
@@ -71,6 +71,7 @@ struct io_uring_sqe { · 70 unmodified lines
7171 __u32 uring_cmd_flags;
7272 __u32 waitid_flags;
7373 __u32 futex_flags;
74+ __u32 install_fd_flags;
7475 };
7576 __u64 user_data; /* data to be passed back at completion time */
7677 /* pack this to avoid bogus arm OABI complaints */
@@ -253,6 +254,7 @@ enum io_uring_op { · 176 unmodified lines
253254 IORING_OP_FUTEX_WAIT,
254255 IORING_OP_FUTEX_WAKE,
255256 IORING_OP_FUTEX_WAITV,
257+ IORING_OP_FIXED_FD_INSTALL,
256258
257259 /* this goes last, obviously */
258260 IORING_OP_LAST,
@@ -386,6 +388,13 @@ enum { · 127 unmodified lines
386388 /* Pass through the flags from sqe->file_index to cqe->flags */
387389 #define IORING_MSG_RING_FLAGS_PASS (1U << 1)
388390
391+/*
392+ * IORING_OP_FIXED_FD_INSTALL flags (sqe->install_fd_flags)
393+ *
394+ * IORING_FIXED_FD_NO_CLOEXEC Don't mark the fd as O_CLOEXEC
395+ */
396+#define IORING_FIXED_FD_NO_CLOEXEC (1U << 0)
397+
389398 /*
390399 * IO completion data structure (Completion Queue Entry)
391400 */
@@ -558,6 +567,9 @@ enum { · 166 unmodified lines
558567 /* register a range of fixed file slots for automatic slot allocation */
559568 IORING_REGISTER_FILE_ALLOC_RANGE = 25,
560569
570+ /* return status information for a buffer group */
571+ IORING_REGISTER_PBUF_STATUS = 26,
572+
561573 /* this goes last */
562574 IORING_REGISTER_LAST,
563575
@@ -684,6 +696,13 @@ struct io_uring_buf_reg { · 120 unmodified lines
684696 __u64 resv[3];
685697 };
686698
699+/* argument for IORING_REGISTER_PBUF_STATUS */
700+struct io_uring_buf_status {
701+ __u32 buf_group; /* input */
702+ __u32 head; /* output */
703+ __u32 resv[8];
704+};
705+
687706 /*
688707 * io_uring_restriction->opcode values
689708 */
include/uapi/linux/iommufd.h+79−0
@@ -49,6 +49,7 @@ enum { · 48 unmodified lines
4949 IOMMUFD_CMD_GET_HW_INFO,
5050 IOMMUFD_CMD_HWPT_SET_DIRTY_TRACKING,
5151 IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP,
52+ IOMMUFD_CMD_HWPT_INVALIDATE,
5253 };
5354
5455 /**
@@ -613,4 +614,82 @@ struct iommu_hwpt_get_dirty_bitmap { · 558 unmodified lines
613614 #define IOMMU_HWPT_GET_DIRTY_BITMAP _IO(IOMMUFD_TYPE, \
614615 IOMMUFD_CMD_HWPT_GET_DIRTY_BITMAP)
615616
617+/**
618+ * enum iommu_hwpt_invalidate_data_type - IOMMU HWPT Cache Invalidation
619+ * Data Type
620+ * @IOMMU_HWPT_INVALIDATE_DATA_VTD_S1: Invalidation data for VTD_S1
621+ */
622+enum iommu_hwpt_invalidate_data_type {
623+ IOMMU_HWPT_INVALIDATE_DATA_VTD_S1,
624+};
625+
626+/**
627+ * enum iommu_hwpt_vtd_s1_invalidate_flags - Flags for Intel VT-d
628+ * stage-1 cache invalidation
629+ * @IOMMU_VTD_INV_FLAGS_LEAF: Indicates whether the invalidation applies
630+ * to all-levels page structure cache or just
631+ * the leaf PTE cache.
632+ */
633+enum iommu_hwpt_vtd_s1_invalidate_flags {
634+ IOMMU_VTD_INV_FLAGS_LEAF = 1 << 0,
635+};
636+
637+/**
638+ * struct iommu_hwpt_vtd_s1_invalidate - Intel VT-d cache invalidation
639+ * (IOMMU_HWPT_INVALIDATE_DATA_VTD_S1)
640+ * @addr: The start address of the range to be invalidated. It needs to
641+ * be 4KB aligned.
642+ * @npages: Number of contiguous 4K pages to be invalidated.
643+ * @flags: Combination of enum iommu_hwpt_vtd_s1_invalidate_flags
644+ * @__reserved: Must be 0
645+ *
646+ * The Intel VT-d specific invalidation data for user-managed stage-1 cache
647+ * invalidation in nested translation. Userspace uses this structure to
648+ * tell the impacted cache scope after modifying the stage-1 page table.
649+ *
650+ * Invalidating all the caches related to the page table by setting @addr
651+ * to be 0 and @npages to be U64_MAX.
652+ *
653+ * The device TLB will be invalidated automatically if ATS is enabled.
654+ */
655+struct iommu_hwpt_vtd_s1_invalidate {
656+ __aligned_u64 addr;
657+ __aligned_u64 npages;
658+ __u32 flags;
659+ __u32 __reserved;
660+};
661+
662+/**
663+ * struct iommu_hwpt_invalidate - ioctl(IOMMU_HWPT_INVALIDATE)
664+ * @size: sizeof(struct iommu_hwpt_invalidate)
665+ * @hwpt_id: ID of a nested HWPT for cache invalidation
666+ * @data_uptr: User pointer to an array of driver-specific cache invalidation
667+ * data.
668+ * @data_type: One of enum iommu_hwpt_invalidate_data_type, defining the data
669+ * type of all the entries in the invalidation request array. It
670+ * should be a type supported by the hwpt pointed by @hwpt_id.
671+ * @entry_len: Length (in bytes) of a request entry in the request array
672+ * @entry_num: Input the number of cache invalidation requests in the array.
673+ * Output the number of requests successfully handled by kernel.
674+ * @__reserved: Must be 0.
675+ *
676+ * Invalidate the iommu cache for user-managed page table. Modifications on a
677+ * user-managed page table should be followed by this operation to sync cache.
678+ * Each ioctl can support one or more cache invalidation requests in the array
679+ * that has a total size of @entry_len * @entry_num.
680+ *
681+ * An empty invalidation request array by setting @entry_num==0 is allowed, and
682+ * @entry_len and @data_uptr would be ignored in this case. This can be used to
683+ * check if the given @data_type is supported or not by kernel.
684+ */
685+struct iommu_hwpt_invalidate {
686+ __u32 size;
687+ __u32 hwpt_id;
688+ __aligned_u64 data_uptr;
689+ __u32 data_type;
690+ __u32 entry_len;
691+ __u32 entry_num;
692+ __u32 __reserved;
693+};
694+#define IOMMU_HWPT_INVALIDATE _IO(IOMMUFD_TYPE, IOMMUFD_CMD_HWPT_INVALIDATE)
616695 #endif
include/uapi/linux/kexec.h+1−0
@@ -25,6 +25,7 @@ · 24 unmodified lines
2525 #define KEXEC_FILE_UNLOAD 0x00000001
2626 #define KEXEC_FILE_ON_CRASH 0x00000002
2727 #define KEXEC_FILE_NO_INITRAMFS 0x00000004
28+#define KEXEC_FILE_DEBUG 0x00000008
2829
2930 /* These values match the ELF architecture values.
3031 * Unless there is a good reason that should continue to be the case.
include/uapi/linux/kvm.h+50−90
@@ -16,76 +16,6 @@ · 15 unmodified lines
1616
1717 #define KVM_API_VERSION 12
1818
19−/* *** Deprecated interfaces *** */
20−
21−#define KVM_TRC_SHIFT 16
22−
23−#define KVM_TRC_ENTRYEXIT (1 << KVM_TRC_SHIFT)
24−#define KVM_TRC_HANDLER (1 << (KVM_TRC_SHIFT + 1))
25−
26−#define KVM_TRC_VMENTRY (KVM_TRC_ENTRYEXIT + 0x01)
27−#define KVM_TRC_VMEXIT (KVM_TRC_ENTRYEXIT + 0x02)
28−#define KVM_TRC_PAGE_FAULT (KVM_TRC_HANDLER + 0x01)
29−
30−#define KVM_TRC_HEAD_SIZE 12
31−#define KVM_TRC_CYCLE_SIZE 8
32−#define KVM_TRC_EXTRA_MAX 7
33−
34−#define KVM_TRC_INJ_VIRQ (KVM_TRC_HANDLER + 0x02)
35−#define KVM_TRC_REDELIVER_EVT (KVM_TRC_HANDLER + 0x03)
36−#define KVM_TRC_PEND_INTR (KVM_TRC_HANDLER + 0x04)
37−#define KVM_TRC_IO_READ (KVM_TRC_HANDLER + 0x05)
38−#define KVM_TRC_IO_WRITE (KVM_TRC_HANDLER + 0x06)
39−#define KVM_TRC_CR_READ (KVM_TRC_HANDLER + 0x07)
40−#define KVM_TRC_CR_WRITE (KVM_TRC_HANDLER + 0x08)
41−#define KVM_TRC_DR_READ (KVM_TRC_HANDLER + 0x09)
42−#define KVM_TRC_DR_WRITE (KVM_TRC_HANDLER + 0x0A)
43−#define KVM_TRC_MSR_READ (KVM_TRC_HANDLER + 0x0B)
44−#define KVM_TRC_MSR_WRITE (KVM_TRC_HANDLER + 0x0C)
45−#define KVM_TRC_CPUID (KVM_TRC_HANDLER + 0x0D)
46−#define KVM_TRC_INTR (KVM_TRC_HANDLER + 0x0E)
47−#define KVM_TRC_NMI (KVM_TRC_HANDLER + 0x0F)
48−#define KVM_TRC_VMMCALL (KVM_TRC_HANDLER + 0x10)
49−#define KVM_TRC_HLT (KVM_TRC_HANDLER + 0x11)
50−#define KVM_TRC_CLTS (KVM_TRC_HANDLER + 0x12)
51−#define KVM_TRC_LMSW (KVM_TRC_HANDLER + 0x13)
52−#define KVM_TRC_APIC_ACCESS (KVM_TRC_HANDLER + 0x14)
53−#define KVM_TRC_TDP_FAULT (KVM_TRC_HANDLER + 0x15)
54−#define KVM_TRC_GTLB_WRITE (KVM_TRC_HANDLER + 0x16)
55−#define KVM_TRC_STLB_WRITE (KVM_TRC_HANDLER + 0x17)
56−#define KVM_TRC_STLB_INVAL (KVM_TRC_HANDLER + 0x18)
57−#define KVM_TRC_PPC_INSTR (KVM_TRC_HANDLER + 0x19)
58−
59−struct kvm_user_trace_setup {
60− __u32 buf_size;
61− __u32 buf_nr;
62−};
63−
64−#define __KVM_DEPRECATED_MAIN_W_0x06 \
65− _IOW(KVMIO, 0x06, struct kvm_user_trace_setup)
66−#define __KVM_DEPRECATED_MAIN_0x07 _IO(KVMIO, 0x07)
67−#define __KVM_DEPRECATED_MAIN_0x08 _IO(KVMIO, 0x08)
68−
69−#define __KVM_DEPRECATED_VM_R_0x70 _IOR(KVMIO, 0x70, struct kvm_assigned_irq)
70−
71−struct kvm_breakpoint {
72− __u32 enabled;
73− __u32 padding;
74− __u64 address;
75−};
76−
77−struct kvm_debug_guest {
78− __u32 enabled;
79− __u32 pad;
80− struct kvm_breakpoint breakpoints[4];
81− __u32 singlestep;
82−};
83−
84−#define __KVM_DEPRECATED_VCPU_W_0x87 _IOW(KVMIO, 0x87, struct kvm_debug_guest)
85−
86−/* *** End of deprecated interfaces *** */
87−
88−
8919 /* for KVM_SET_USER_MEMORY_REGION */
9020 struct kvm_userspace_memory_region {
9121 __u32 slot;
@@ -95,6 +25,19 @@ struct kvm_userspace_memory_region { · 3 unmodified lines
9525 __u64 userspace_addr; /* start of the userspace allocated memory */
9626 };
9727
28+/* for KVM_SET_USER_MEMORY_REGION2 */
29+struct kvm_userspace_memory_region2 {
30+ __u32 slot;
31+ __u32 flags;
32+ __u64 guest_phys_addr;
33+ __u64 memory_size;
34+ __u64 userspace_addr;
35+ __u64 guest_memfd_offset;
36+ __u32 guest_memfd;
37+ __u32 pad1;
38+ __u64 pad2[14];
39+};
40+
9841 /*
9942 * The bit 0 ~ bit 15 of kvm_userspace_memory_region::flags are visible for
10043 * userspace, other bits are reserved for kvm internal use which are defined
@@ -102,6 +45,7 @@ struct kvm_userspace_memory_region { · 1 unmodified line
10245 */
10346 #define KVM_MEM_LOG_DIRTY_PAGES (1UL << 0)
10447 #define KVM_MEM_READONLY (1UL << 1)
48+#define KVM_MEM_GUEST_MEMFD (1UL << 2)
10549
10650 /* for KVM_IRQ_LINE */
10751 struct kvm_irq_level {
@@ -265,6 +209,7 @@ struct kvm_xen_exit { · 157 unmodified lines
265209 #define KVM_EXIT_RISCV_CSR 36
266210 #define KVM_EXIT_NOTIFY 37
267211 #define KVM_EXIT_LOONGARCH_IOCSR 38
212+#define KVM_EXIT_MEMORY_FAULT 39
268213
269214 /* For KVM_EXIT_INTERNAL_ERROR */
270215 /* Emulate instruction failed. */
@@ -518,6 +463,13 @@ struct kvm_run { · 247 unmodified lines
518463 #define KVM_NOTIFY_CONTEXT_INVALID (1 << 0)
519464 __u32 flags;
520465 } notify;
466+ /* KVM_EXIT_MEMORY_FAULT */
467+ struct {
468+#define KVM_MEMORY_EXIT_FLAG_PRIVATE (1ULL << 3)
469+ __u64 flags;
470+ __u64 gpa;
471+ __u64 size;
472+ } memory_fault;
521473 /* Fix the size of the union. */
522474 char padding[256];
523475 };
@@ -945,9 +897,6 @@ struct kvm_ppc_resize_hpt { · 421 unmodified lines
945897 */
946898 #define KVM_GET_VCPU_MMAP_SIZE _IO(KVMIO, 0x04) /* in bytes */
947899 #define KVM_GET_SUPPORTED_CPUID _IOWR(KVMIO, 0x05, struct kvm_cpuid2)
948−#define KVM_TRACE_ENABLE __KVM_DEPRECATED_MAIN_W_0x06
949−#define KVM_TRACE_PAUSE __KVM_DEPRECATED_MAIN_0x07
950−#define KVM_TRACE_DISABLE __KVM_DEPRECATED_MAIN_0x08
951900 #define KVM_GET_EMULATED_CPUID _IOWR(KVMIO, 0x09, struct kvm_cpuid2)
952901 #define KVM_GET_MSR_FEATURE_INDEX_LIST _IOWR(KVMIO, 0x0a, struct kvm_msr_list)
953902
@@ -1201,6 +1150,11 @@ struct kvm_ppc_resize_hpt { · 247 unmodified lines
12011150 #define KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE 228
12021151 #define KVM_CAP_ARM_SUPPORTED_BLOCK_SIZES 229
12031152 #define KVM_CAP_ARM_SUPPORTED_REG_MASK_RANGES 230
1153+#define KVM_CAP_USER_MEMORY2 231
1154+#define KVM_CAP_MEMORY_FAULT_INFO 232
1155+#define KVM_CAP_MEMORY_ATTRIBUTES 233
1156+#define KVM_CAP_GUEST_MEMFD 234
1157+#define KVM_CAP_VM_TYPES 235
12041158
12051159 #ifdef KVM_CAP_IRQ_ROUTING
12061160
@@ -1291,6 +1245,7 @@ struct kvm_x86_mce { · 84 unmodified lines
12911245 #define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
12921246 #define KVM_XEN_HVM_CONFIG_EVTCHN_SEND (1 << 5)
12931247 #define KVM_XEN_HVM_CONFIG_RUNSTATE_UPDATE_FLAG (1 << 6)
1248+#define KVM_XEN_HVM_CONFIG_PVCLOCK_TSC_UNSTABLE (1 << 7)
12941249
12951250 struct kvm_xen_hvm_config {
12961251 __u32 flags;
@@ -1483,6 +1438,8 @@ struct kvm_vfio_spapr_tce { · 186 unmodified lines
14831438 struct kvm_userspace_memory_region)
14841439 #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47)
14851440 #define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64)
1441+#define KVM_SET_USER_MEMORY_REGION2 _IOW(KVMIO, 0x49, \
1442+ struct kvm_userspace_memory_region2)
14861443
14871444 /* enable ucontrol for s390 */
14881445 struct kvm_s390_ucas_mapping {
@@ -1507,20 +1464,8 @@ struct kvm_s390_ucas_mapping { · 18 unmodified lines
15071464 _IOW(KVMIO, 0x67, struct kvm_coalesced_mmio_zone)
15081465 #define KVM_UNREGISTER_COALESCED_MMIO \
15091466 _IOW(KVMIO, 0x68, struct kvm_coalesced_mmio_zone)
1510−#define KVM_ASSIGN_PCI_DEVICE _IOR(KVMIO, 0x69, \
1511− struct kvm_assigned_pci_dev)
15121467 #define KVM_SET_GSI_ROUTING _IOW(KVMIO, 0x6a, struct kvm_irq_routing)
1513−/* deprecated, replaced by KVM_ASSIGN_DEV_IRQ */
1514−#define KVM_ASSIGN_IRQ __KVM_DEPRECATED_VM_R_0x70
1515−#define KVM_ASSIGN_DEV_IRQ _IOW(KVMIO, 0x70, struct kvm_assigned_irq)
15161468 #define KVM_REINJECT_CONTROL _IO(KVMIO, 0x71)
1517−#define KVM_DEASSIGN_PCI_DEVICE _IOW(KVMIO, 0x72, \
1518− struct kvm_assigned_pci_dev)
1519−#define KVM_ASSIGN_SET_MSIX_NR _IOW(KVMIO, 0x73, \
1520− struct kvm_assigned_msix_nr)
1521−#define KVM_ASSIGN_SET_MSIX_ENTRY _IOW(KVMIO, 0x74, \
1522− struct kvm_assigned_msix_entry)
1523−#define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq)
15241469 #define KVM_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd)
15251470 #define KVM_CREATE_PIT2 _IOW(KVMIO, 0x77, struct kvm_pit_config)
15261471 #define KVM_SET_BOOT_CPU_ID _IO(KVMIO, 0x78)
@@ -1537,9 +1482,6 @@ struct kvm_s390_ucas_mapping { · 10 unmodified lines
15371482 * KVM_CAP_VM_TSC_CONTROL to set defaults for a VM */
15381483 #define KVM_SET_TSC_KHZ _IO(KVMIO, 0xa2)
15391484 #define KVM_GET_TSC_KHZ _IO(KVMIO, 0xa3)
1540−/* Available with KVM_CAP_PCI_2_3 */
1541−#define KVM_ASSIGN_SET_INTX_MASK _IOW(KVMIO, 0xa4, \
1542− struct kvm_assigned_pci_dev)
15431485 /* Available with KVM_CAP_SIGNAL_MSI */
15441486 #define KVM_SIGNAL_MSI _IOW(KVMIO, 0xa5, struct kvm_msi)
15451487 /* Available with KVM_CAP_PPC_GET_SMMU_INFO */
@@ -1592,8 +1534,6 @@ struct kvm_s390_ucas_mapping { · 46 unmodified lines
15921534 #define KVM_SET_SREGS _IOW(KVMIO, 0x84, struct kvm_sregs)
15931535 #define KVM_TRANSLATE _IOWR(KVMIO, 0x85, struct kvm_translation)
15941536 #define KVM_INTERRUPT _IOW(KVMIO, 0x86, struct kvm_interrupt)
1595−/* KVM_DEBUG_GUEST is no longer supported, use KVM_SET_GUEST_DEBUG instead */
1596−#define KVM_DEBUG_GUEST __KVM_DEPRECATED_VCPU_W_0x87
15971537 #define KVM_GET_MSRS _IOWR(KVMIO, 0x88, struct kvm_msrs)
15981538 #define KVM_SET_MSRS _IOW(KVMIO, 0x89, struct kvm_msrs)
15991539 #define KVM_SET_CPUID _IOW(KVMIO, 0x8a, struct kvm_cpuid)
@@ -2267,4 +2207,24 @@ struct kvm_s390_zpci_op { · 667 unmodified lines
22672207 /* flags for kvm_s390_zpci_op->u.reg_aen.flags */
22682208 #define KVM_S390_ZPCIOP_REGAEN_HOST (1 << 0)
22692209
2210+/* Available with KVM_CAP_MEMORY_ATTRIBUTES */
2211+#define KVM_SET_MEMORY_ATTRIBUTES _IOW(KVMIO, 0xd2, struct kvm_memory_attributes)
2212+
2213+struct kvm_memory_attributes {
2214+ __u64 address;
2215+ __u64 size;
2216+ __u64 attributes;
2217+ __u64 flags;
2218+};
2219+
2220+#define KVM_MEMORY_ATTRIBUTE_PRIVATE (1ULL << 3)
2221+
2222+#define KVM_CREATE_GUEST_MEMFD _IOWR(KVMIO, 0xd4, struct kvm_create_guest_memfd)
2223+
2224+struct kvm_create_guest_memfd {
2225+ __u64 size;
2226+ __u64 flags;
2227+ __u64 reserved[6];
2228+};
2229+
22702230 #endif /* __LINUX_KVM_H */
include/uapi/linux/lsm.h+90−0
@@ -0,0 +1,90 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Linux Security Modules (LSM) - User space API
4+ *
5+ * Copyright (C) 2022 Casey Schaufler <casey@schaufler-ca.com>
6+ * Copyright (C) 2022 Intel Corporation
7+ */
8+
9+#ifndef _UAPI_LINUX_LSM_H
10+#define _UAPI_LINUX_LSM_H
11+
12+#include <linux/stddef.h>
13+#include <linux/types.h>
14+#include <linux/unistd.h>
15+
16+/**
17+ * struct lsm_ctx - LSM context information
18+ * @id: the LSM id number, see LSM_ID_XXX
19+ * @flags: LSM specific flags
20+ * @len: length of the lsm_ctx struct, @ctx and any other data or padding
21+ * @ctx_len: the size of @ctx
22+ * @ctx: the LSM context value
23+ *
24+ * The @len field MUST be equal to the size of the lsm_ctx struct
25+ * plus any additional padding and/or data placed after @ctx.
26+ *
27+ * In all cases @ctx_len MUST be equal to the length of @ctx.
28+ * If @ctx is a string value it should be nul terminated with
29+ * @ctx_len equal to `strlen(@ctx) + 1`. Binary values are
30+ * supported.
31+ *
32+ * The @flags and @ctx fields SHOULD only be interpreted by the
33+ * LSM specified by @id; they MUST be set to zero/0 when not used.
34+ */
35+struct lsm_ctx {
36+ __u64 id;
37+ __u64 flags;
38+ __u64 len;
39+ __u64 ctx_len;
40+ __u8 ctx[] __counted_by(ctx_len);
41+};
42+
43+/*
44+ * ID tokens to identify Linux Security Modules (LSMs)
45+ *
46+ * These token values are used to uniquely identify specific LSMs
47+ * in the kernel as well as in the kernel's LSM userspace API.
48+ *
49+ * A value of zero/0 is considered undefined and should not be used
50+ * outside the kernel. Values 1-99 are reserved for potential
51+ * future use.
52+ */
53+#define LSM_ID_UNDEF 0
54+#define LSM_ID_CAPABILITY 100
55+#define LSM_ID_SELINUX 101
56+#define LSM_ID_SMACK 102
57+#define LSM_ID_TOMOYO 103
58+#define LSM_ID_APPARMOR 104
59+#define LSM_ID_YAMA 105
60+#define LSM_ID_LOADPIN 106
61+#define LSM_ID_SAFESETID 107
62+#define LSM_ID_LOCKDOWN 108
63+#define LSM_ID_BPF 109
64+#define LSM_ID_LANDLOCK 110
65+
66+/*
67+ * LSM_ATTR_XXX definitions identify different LSM attributes
68+ * which are used in the kernel's LSM userspace API. Support
69+ * for these attributes vary across the different LSMs. None
70+ * are required.
71+ *
72+ * A value of zero/0 is considered undefined and should not be used
73+ * outside the kernel. Values 1-99 are reserved for potential
74+ * future use.
75+ */
76+#define LSM_ATTR_UNDEF 0
77+#define LSM_ATTR_CURRENT 100
78+#define LSM_ATTR_EXEC 101
79+#define LSM_ATTR_FSCREATE 102
80+#define LSM_ATTR_KEYCREATE 103
81+#define LSM_ATTR_PREV 104
82+#define LSM_ATTR_SOCKCREATE 105
83+
84+/*
85+ * LSM_FLAG_XXX definitions identify special handling instructions
86+ * for the API.
87+ */
88+#define LSM_FLAG_SINGLE 0x0001
89+
90+#endif /* _UAPI_LINUX_LSM_H */
include/uapi/linux/mei.h+2−2
@@ -100,14 +100,14 @@ struct mei_connect_client_data_vtag { · 99 unmodified lines
100100 * a FW client on a tagged channel. From this point on, every read
101101 * and write will communicate with the associated FW client
102102 * on the tagged channel.
103− * Upone close() the communication is terminated.
103+ * Upon close() the communication is terminated.
104104 *
105105 * The IOCTL argument is a struct with a union that contains
106106 * the input parameter and the output parameter for this IOCTL.
107107 *
108108 * The input parameter is UUID of the FW Client, a vtag [0,255].
109109 * The output parameter is the properties of the FW client
110− * (FW protocool version and max message size).
110+ * (FW protocol version and max message size).
111111 *
112112 * Clients that do not support tagged connection
113113 * will respond with -EOPNOTSUPP.
include/uapi/linux/mount.h+70−0
@@ -138,4 +138,74 @@ struct mount_attr { · 137 unmodified lines
138138 /* List of all mount_attr versions. */
139139 #define MOUNT_ATTR_SIZE_VER0 32 /* sizeof first published struct */
140140
141+
142+/*
143+ * Structure for getting mount/superblock/filesystem info with statmount(2).
144+ *
145+ * The interface is similar to statx(2): individual fields or groups can be
146+ * selected with the @mask argument of statmount(). Kernel will set the @mask
147+ * field according to the supported fields.
148+ *
149+ * If string fields are selected, then the caller needs to pass a buffer that
150+ * has space after the fixed part of the structure. Nul terminated strings are
151+ * copied there and offsets relative to @str are stored in the relevant fields.
152+ * If the buffer is too small, then EOVERFLOW is returned. The actually used
153+ * size is returned in @size.
154+ */
155+struct statmount {
156+ __u32 size; /* Total size, including strings */
157+ __u32 __spare1;
158+ __u64 mask; /* What results were written */
159+ __u32 sb_dev_major; /* Device ID */
160+ __u32 sb_dev_minor;
161+ __u64 sb_magic; /* ..._SUPER_MAGIC */
162+ __u32 sb_flags; /* SB_{RDONLY,SYNCHRONOUS,DIRSYNC,LAZYTIME} */
163+ __u32 fs_type; /* [str] Filesystem type */
164+ __u64 mnt_id; /* Unique ID of mount */
165+ __u64 mnt_parent_id; /* Unique ID of parent (for root == mnt_id) */
166+ __u32 mnt_id_old; /* Reused IDs used in proc/.../mountinfo */
167+ __u32 mnt_parent_id_old;
168+ __u64 mnt_attr; /* MOUNT_ATTR_... */
169+ __u64 mnt_propagation; /* MS_{SHARED,SLAVE,PRIVATE,UNBINDABLE} */
170+ __u64 mnt_peer_group; /* ID of shared peer group */
171+ __u64 mnt_master; /* Mount receives propagation from this ID */
172+ __u64 propagate_from; /* Propagation from in current namespace */
173+ __u32 mnt_root; /* [str] Root of mount relative to root of fs */
174+ __u32 mnt_point; /* [str] Mountpoint relative to current root */
175+ __u64 __spare2[50];
176+ char str[]; /* Variable size part containing strings */
177+};
178+
179+/*
180+ * Structure for passing mount ID and miscellaneous parameters to statmount(2)
181+ * and listmount(2).
182+ *
183+ * For statmount(2) @param represents the request mask.
184+ * For listmount(2) @param represents the last listed mount id (or zero).
185+ */
186+struct mnt_id_req {
187+ __u32 size;
188+ __u32 spare;
189+ __u64 mnt_id;
190+ __u64 param;
191+};
192+
193+/* List of all mnt_id_req versions. */
194+#define MNT_ID_REQ_SIZE_VER0 24 /* sizeof first published struct */
195+
196+/*
197+ * @mask bits for statmount(2)
198+ */
199+#define STATMOUNT_SB_BASIC 0x00000001U /* Want/got sb_... */
200+#define STATMOUNT_MNT_BASIC 0x00000002U /* Want/got mnt_... */
201+#define STATMOUNT_PROPAGATE_FROM 0x00000004U /* Want/got propagate_from */
202+#define STATMOUNT_MNT_ROOT 0x00000008U /* Want/got mnt_root */
203+#define STATMOUNT_MNT_POINT 0x00000010U /* Want/got mnt_point */
204+#define STATMOUNT_FS_TYPE 0x00000020U /* Want/got fs_type */
205+
206+/*
207+ * Special @mnt_id values that can be passed to listmount
208+ */
209+#define LSMT_ROOT 0xffffffffffffffff /* root mount */
210+
141211 #endif /* _UAPI_LINUX_MOUNT_H */
include/uapi/linux/mptcp.h+1−0
@@ -57,6 +57,7 @@ struct mptcp_info { · 56 unmodified lines
5757 __u64 mptcpi_bytes_sent;
5858 __u64 mptcpi_bytes_received;
5959 __u64 mptcpi_bytes_acked;
60+ __u8 mptcpi_subflows_total;
6061 };
6162
6263 /* MPTCP Reset reason codes, rfc8684 */
include/uapi/linux/mptcp_pm.h+1−1
@@ -1,6 +1,6 @@
11 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
22 /* Do not edit directly, auto-generated from: */
3−/* Documentation/netlink/specs/mptcp.yaml */
3+/* Documentation/netlink/specs/mptcp_pm.yaml */
44 /* YNL-GEN uapi header */
55
66 #ifndef _UAPI_LINUX_MPTCP_PM_H
include/uapi/linux/netdev.h+78−2
@@ -44,13 +44,30 @@ enum netdev_xdp_act { · 43 unmodified lines
4444 * timestamp via bpf_xdp_metadata_rx_timestamp().
4545 * @NETDEV_XDP_RX_METADATA_HASH: Device is capable of exposing receive packet
4646 * hash via bpf_xdp_metadata_rx_hash().
47+ * @NETDEV_XDP_RX_METADATA_VLAN_TAG: Device is capable of exposing receive
48+ * packet VLAN tag via bpf_xdp_metadata_rx_vlan_tag().
4749 */
4850 enum netdev_xdp_rx_metadata {
4951 NETDEV_XDP_RX_METADATA_TIMESTAMP = 1,
5052 NETDEV_XDP_RX_METADATA_HASH = 2,
53+ NETDEV_XDP_RX_METADATA_VLAN_TAG = 4,
54+};
5155
52− /* private: */
53− NETDEV_XDP_RX_METADATA_MASK = 3,
56+/**
57+ * enum netdev_xsk_flags
58+ * @NETDEV_XSK_FLAGS_TX_TIMESTAMP: HW timestamping egress packets is supported
59+ * by the driver.
60+ * @NETDEV_XSK_FLAGS_TX_CHECKSUM: L3 checksum HW offload is supported by the
61+ * driver.
62+ */
63+enum netdev_xsk_flags {
64+ NETDEV_XSK_FLAGS_TX_TIMESTAMP = 1,
65+ NETDEV_XSK_FLAGS_TX_CHECKSUM = 2,
66+};
67+
68+enum netdev_queue_type {
69+ NETDEV_QUEUE_TYPE_RX,
70+ NETDEV_QUEUE_TYPE_TX,
5471 };
5572
5673 enum {
@@ -59,21 +76,80 @@ enum { · 2 unmodified lines
5976 NETDEV_A_DEV_XDP_FEATURES,
6077 NETDEV_A_DEV_XDP_ZC_MAX_SEGS,
6178 NETDEV_A_DEV_XDP_RX_METADATA_FEATURES,
79+ NETDEV_A_DEV_XSK_FEATURES,
6280
6381 __NETDEV_A_DEV_MAX,
6482 NETDEV_A_DEV_MAX = (__NETDEV_A_DEV_MAX - 1)
6583 };
6684
85+enum {
86+ NETDEV_A_PAGE_POOL_ID = 1,
87+ NETDEV_A_PAGE_POOL_IFINDEX,
88+ NETDEV_A_PAGE_POOL_NAPI_ID,
89+ NETDEV_A_PAGE_POOL_INFLIGHT,
90+ NETDEV_A_PAGE_POOL_INFLIGHT_MEM,
91+ NETDEV_A_PAGE_POOL_DETACH_TIME,
92+
93+ __NETDEV_A_PAGE_POOL_MAX,
94+ NETDEV_A_PAGE_POOL_MAX = (__NETDEV_A_PAGE_POOL_MAX - 1)
95+};
96+
97+enum {
98+ NETDEV_A_PAGE_POOL_STATS_INFO = 1,
99+ NETDEV_A_PAGE_POOL_STATS_ALLOC_FAST = 8,
100+ NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW,
101+ NETDEV_A_PAGE_POOL_STATS_ALLOC_SLOW_HIGH_ORDER,
102+ NETDEV_A_PAGE_POOL_STATS_ALLOC_EMPTY,
103+ NETDEV_A_PAGE_POOL_STATS_ALLOC_REFILL,
104+ NETDEV_A_PAGE_POOL_STATS_ALLOC_WAIVE,
105+ NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHED,
106+ NETDEV_A_PAGE_POOL_STATS_RECYCLE_CACHE_FULL,
107+ NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING,
108+ NETDEV_A_PAGE_POOL_STATS_RECYCLE_RING_FULL,
109+ NETDEV_A_PAGE_POOL_STATS_RECYCLE_RELEASED_REFCNT,
110+
111+ __NETDEV_A_PAGE_POOL_STATS_MAX,
112+ NETDEV_A_PAGE_POOL_STATS_MAX = (__NETDEV_A_PAGE_POOL_STATS_MAX - 1)
113+};
114+
115+enum {
116+ NETDEV_A_NAPI_IFINDEX = 1,
117+ NETDEV_A_NAPI_ID,
118+ NETDEV_A_NAPI_IRQ,
119+ NETDEV_A_NAPI_PID,
120+
121+ __NETDEV_A_NAPI_MAX,
122+ NETDEV_A_NAPI_MAX = (__NETDEV_A_NAPI_MAX - 1)
123+};
124+
125+enum {
126+ NETDEV_A_QUEUE_ID = 1,
127+ NETDEV_A_QUEUE_IFINDEX,
128+ NETDEV_A_QUEUE_TYPE,
129+ NETDEV_A_QUEUE_NAPI_ID,
130+
131+ __NETDEV_A_QUEUE_MAX,
132+ NETDEV_A_QUEUE_MAX = (__NETDEV_A_QUEUE_MAX - 1)
133+};
134+
67135 enum {
68136 NETDEV_CMD_DEV_GET = 1,
69137 NETDEV_CMD_DEV_ADD_NTF,
70138 NETDEV_CMD_DEV_DEL_NTF,
71139 NETDEV_CMD_DEV_CHANGE_NTF,
140+ NETDEV_CMD_PAGE_POOL_GET,
141+ NETDEV_CMD_PAGE_POOL_ADD_NTF,
142+ NETDEV_CMD_PAGE_POOL_DEL_NTF,
143+ NETDEV_CMD_PAGE_POOL_CHANGE_NTF,
144+ NETDEV_CMD_PAGE_POOL_STATS_GET,
145+ NETDEV_CMD_QUEUE_GET,
146+ NETDEV_CMD_NAPI_GET,
72147
73148 __NETDEV_CMD_MAX,
74149 NETDEV_CMD_MAX = (__NETDEV_CMD_MAX - 1)
75150 };
76151
77152 #define NETDEV_MCGRP_MGMT "mgmt"
153+#define NETDEV_MCGRP_PAGE_POOL "page-pool"
78154
79155 #endif /* _UAPI_LINUX_NETDEV_H */
include/uapi/linux/nl80211.h+140−45
@@ -72,7 +72,7 @@ · 71 unmodified lines
7272 * For drivers supporting TDLS with external setup (WIPHY_FLAG_SUPPORTS_TDLS
7373 * and WIPHY_FLAG_TDLS_EXTERNAL_SETUP), the station lifetime is as follows:
7474 * - a setup station entry is added, not yet authorized, without any rate
75− * or capability information, this just exists to avoid race conditions
75+ * or capability information; this just exists to avoid race conditions
7676 * - when the TDLS setup is done, a single NL80211_CMD_SET_STATION is valid
7777 * to add rate and capability information to the station and at the same
7878 * time mark it authorized.
@@ -87,7 +87,7 @@ · 8 unmodified lines
8787 * DOC: Frame transmission/registration support
8888 *
8989 * Frame transmission and registration support exists to allow userspace
90− * management entities such as wpa_supplicant react to management frames
90+ * management entities such as wpa_supplicant to react to management frames
9191 * that are not being handled by the kernel. This includes, for example,
9292 * certain classes of action frames that cannot be handled in the kernel
9393 * for various reasons.
@@ -113,7 +113,7 @@ · 19 unmodified lines
113113 *
114114 * Frame transmission allows userspace to send for example the required
115115 * responses to action frames. It is subject to some sanity checking,
116− * but many frames can be transmitted. When a frame was transmitted, its
116+ * but many frames can be transmitted. When a frame is transmitted, its
117117 * status is indicated to the sending socket.
118118 *
119119 * For more technical details, see the corresponding command descriptions
@@ -123,7 +123,7 @@ · 3 unmodified lines
123123 /**
124124 * DOC: Virtual interface / concurrency capabilities
125125 *
126− * Some devices are able to operate with virtual MACs, they can have
126+ * Some devices are able to operate with virtual MACs; they can have
127127 * more than one virtual interface. The capability handling for this
128128 * is a bit complex though, as there may be a number of restrictions
129129 * on the types of concurrency that are supported.
@@ -135,7 +135,7 @@ · 5 unmodified lines
135135 * Once concurrency is desired, more attributes must be observed:
136136 * To start with, since some interface types are purely managed in
137137 * software, like the AP-VLAN type in mac80211 for example, there's
138− * an additional list of these, they can be added at any time and
138+ * an additional list of these; they can be added at any time and
139139 * are only restricted by some semantic restrictions (e.g. AP-VLAN
140140 * cannot be added without a corresponding AP interface). This list
141141 * is exported in the %NL80211_ATTR_SOFTWARE_IFTYPES attribute.
@@ -164,7 +164,7 @@ · 22 unmodified lines
164164 * Packet coalesce feature helps to reduce number of received interrupts
165165 * to host by buffering these packets in firmware/hardware for some
166166 * predefined time. Received interrupt will be generated when one of the
167− * following events occur.
167+ * following events occurs.
168168 * a) Expiration of hardware timer whose expiration time is set to maximum
169169 * coalescing delay of matching coalesce rule.
170170 * b) Coalescing buffer in hardware reaches its limit.
@@ -174,7 +174,7 @@ · 3 unmodified lines
174174 * rule.
175175 * a) Maximum coalescing delay
176176 * b) List of packet patterns which needs to be matched
177− * c) Condition for coalescence. pattern 'match' or 'no match'
177+ * c) Condition for coalescence: pattern 'match' or 'no match'
178178 * Multiple such rules can be created.
179179 */
180180
@@ -213,7 +213,7 @@ · 32 unmodified lines
213213 /**
214214 * DOC: FILS shared key authentication offload
215215 *
216− * FILS shared key authentication offload can be advertized by drivers by
216+ * FILS shared key authentication offload can be advertised by drivers by
217217 * setting @NL80211_EXT_FEATURE_FILS_SK_OFFLOAD flag. The drivers that support
218218 * FILS shared key authentication offload should be able to construct the
219219 * authentication and association frames for FILS shared key authentication and
@@ -239,7 +239,7 @@ · 19 unmodified lines
239239 * The PMKSA can be maintained in userspace persistently so that it can be used
240240 * later after reboots or wifi turn off/on also.
241241 *
242− * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertized by a FILS
242+ * %NL80211_ATTR_FILS_CACHE_ID is the cache identifier advertised by a FILS
243243 * capable AP supporting PMK caching. It specifies the scope within which the
244244 * PMKSAs are cached in an ESS. %NL80211_CMD_SET_PMKSA and
245245 * %NL80211_CMD_DEL_PMKSA are enhanced to allow support for PMKSA caching based
@@ -290,12 +290,12 @@ · 44 unmodified lines
290290 * If the configuration needs to be applied for specific peer then the MAC
291291 * address of the peer needs to be passed in %NL80211_ATTR_MAC, otherwise the
292292 * configuration will be applied for all the connected peers in the vif except
293− * any peers that have peer specific configuration for the TID by default; if
294− * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer specific values
293+ * any peers that have peer-specific configuration for the TID by default; if
294+ * the %NL80211_TID_CONFIG_ATTR_OVERRIDE flag is set, peer-specific values
295295 * will be overwritten.
296296 *
297− * All this configuration is valid only for STA's current connection
298− * i.e. the configuration will be reset to default when the STA connects back
297+ * All this configuration is valid only for STA's current connection,
298+ * i.e., the configuration will be reset to default when the STA connects back
299299 * after disconnection/roaming, and this configuration will be cleared when
300300 * the interface goes down.
301301 */
@@ -521,7 +521,7 @@ · 219 unmodified lines
521521 * %NL80211_ATTR_SCHED_SCAN_PLANS. If %NL80211_ATTR_SCHED_SCAN_PLANS is
522522 * not specified and only %NL80211_ATTR_SCHED_SCAN_INTERVAL is specified,
523523 * scheduled scan will run in an infinite loop with the specified interval.
524− * These attributes are mutually exculsive,
524+ * These attributes are mutually exclusive,
525525 * i.e. NL80211_ATTR_SCHED_SCAN_INTERVAL must not be passed if
526526 * NL80211_ATTR_SCHED_SCAN_PLANS is defined.
527527 * If for some reason scheduled scan is aborted by the driver, all scan
@@ -552,7 +552,7 @@ · 24 unmodified lines
552552 * %NL80211_CMD_STOP_SCHED_SCAN command is received or when the interface
553553 * is brought down while a scheduled scan was running.
554554 *
555− * @NL80211_CMD_GET_SURVEY: get survey resuls, e.g. channel occupation
555+ * @NL80211_CMD_GET_SURVEY: get survey results, e.g. channel occupation
556556 * or noise level
557557 * @NL80211_CMD_NEW_SURVEY_RESULTS: survey data notification (as a reply to
558558 * NL80211_CMD_GET_SURVEY and on the "scan" multicast group)
@@ -563,12 +563,13 @@ · 4 unmodified lines
563563 * using %NL80211_ATTR_SSID, %NL80211_ATTR_FILS_CACHE_ID,
564564 * %NL80211_ATTR_PMKID, and %NL80211_ATTR_PMK in case of FILS
565565 * authentication where %NL80211_ATTR_FILS_CACHE_ID is the identifier
566− * advertized by a FILS capable AP identifying the scope of PMKSA in an
566+ * advertised by a FILS capable AP identifying the scope of PMKSA in an
567567 * ESS.
568568 * @NL80211_CMD_DEL_PMKSA: Delete a PMKSA cache entry, using %NL80211_ATTR_MAC
569569 * (for the BSSID) and %NL80211_ATTR_PMKID or using %NL80211_ATTR_SSID,
570570 * %NL80211_ATTR_FILS_CACHE_ID, and %NL80211_ATTR_PMKID in case of FILS
571− * authentication.
571+ * authentication. Additionally in case of SAE offload and OWE offloads
572+ * PMKSA entry can be deleted using %NL80211_ATTR_SSID.
572573 * @NL80211_CMD_FLUSH_PMKSA: Flush all PMKSA cache entries.
573574 *
574575 * @NL80211_CMD_REG_CHANGE: indicates to userspace the regulatory domain
@@ -607,7 +608,7 @@ · 32 unmodified lines
607608 * BSSID in case of station mode). %NL80211_ATTR_SSID is used to specify
608609 * the SSID (mainly for association, but is included in authentication
609610 * request, too, to help BSS selection. %NL80211_ATTR_WIPHY_FREQ +
610− * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequence of the
611+ * %NL80211_ATTR_WIPHY_FREQ_OFFSET is used to specify the frequency of the
611612 * channel in MHz. %NL80211_ATTR_AUTH_TYPE is used to specify the
612613 * authentication type. %NL80211_ATTR_IE is used to define IEs
613614 * (VendorSpecificInfo, but also including RSN IE and FT IEs) to be added
@@ -816,7 +817,7 @@ · 202 unmodified lines
816817 * reached.
817818 * @NL80211_CMD_SET_CHANNEL: Set the channel (using %NL80211_ATTR_WIPHY_FREQ
818819 * and the attributes determining channel width) the given interface
819− * (identifed by %NL80211_ATTR_IFINDEX) shall operate on.
820+ * (identified by %NL80211_ATTR_IFINDEX) shall operate on.
820821 * In case multiple channels are supported by the device, the mechanism
821822 * with which it switches channels is implementation-defined.
822823 * When a monitor interface is given, it can only switch channel while
@@ -888,7 +889,7 @@ · 65 unmodified lines
888889 * inform userspace of the new replay counter.
889890 *
890891 * @NL80211_CMD_PMKSA_CANDIDATE: This is used as an event to inform userspace
891− * of PMKSA caching dandidates.
892+ * of PMKSA caching candidates.
892893 *
893894 * @NL80211_CMD_TDLS_OPER: Perform a high-level TDLS command (e.g. link setup).
894895 * In addition, this can be used as an event to request userspace to take
@@ -924,7 +925,7 @@ · 29 unmodified lines
924925 *
925926 * @NL80211_CMD_PROBE_CLIENT: Probe an associated station on an AP interface
926927 * by sending a null data frame to it and reporting when the frame is
927− * acknowleged. This is used to allow timing out inactive clients. Uses
928+ * acknowledged. This is used to allow timing out inactive clients. Uses
928929 * %NL80211_ATTR_IFINDEX and %NL80211_ATTR_MAC. The command returns a
929930 * direct reply with an %NL80211_ATTR_COOKIE that is later used to match
930931 * up the event with the request. The event includes the same data and
@@ -1135,11 +1136,15 @@ · 204 unmodified lines
11351136 * @NL80211_CMD_DEL_PMK: For offloaded 4-Way handshake, delete the previously
11361137 * configured PMK for the authenticator address identified by
11371138 * %NL80211_ATTR_MAC.
1138− * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates an 802.1X FT roam was
1139− * completed successfully. Drivers that support 4 way handshake offload
1140− * should send this event after indicating 802.1X FT assocation with
1141− * %NL80211_CMD_ROAM. If the 4 way handshake failed %NL80211_CMD_DISCONNECT
1142− * should be indicated instead.
1139+ * @NL80211_CMD_PORT_AUTHORIZED: An event that indicates port is authorized and
1140+ * open for regular data traffic. For STA/P2P-client, this event is sent
1141+ * with AP MAC address and for AP/P2P-GO, the event carries the STA/P2P-
1142+ * client MAC address.
1143+ * Drivers that support 4 way handshake offload should send this event for
1144+ * STA/P2P-client after successful 4-way HS or after 802.1X FT following
1145+ * NL80211_CMD_CONNECT or NL80211_CMD_ROAM. Drivers using AP/P2P-GO 4-way
1146+ * handshake offload should send this event on successful completion of
1147+ * 4-way handshake with the peer (STA/P2P-client).
11431148 * @NL80211_CMD_CONTROL_PORT_FRAME: Control Port (e.g. PAE) frame TX request
11441149 * and RX notification. This command is used both as a request to transmit
11451150 * a control port frame and as a notification that a control port frame
@@ -1323,6 +1328,11 @@ · 177 unmodified lines
13231328 * Multi-Link reconfiguration. %NL80211_ATTR_MLO_LINKS is used to provide
13241329 * information about the removed STA MLD setup links.
13251330 *
1331+ * @NL80211_CMD_SET_TID_TO_LINK_MAPPING: Set the TID to Link Mapping for a
1332+ * non-AP MLD station. The %NL80211_ATTR_MLO_TTLM_DLINK and
1333+ * %NL80211_ATTR_MLO_TTLM_ULINK attributes are used to specify the
1334+ * TID to Link mapping for downlink/uplink traffic.
1335+ *
13261336 * @NL80211_CMD_MAX: highest used command number
13271337 * @__NL80211_CMD_AFTER_LAST: internal use
13281338 */
@@ -1578,6 +1588,8 @@ enum nl80211_commands { · 249 unmodified lines
15781588
15791589 NL80211_CMD_LINKS_REMOVED,
15801590
1591+ NL80211_CMD_SET_TID_TO_LINK_MAPPING,
1592+
15811593 /* add new commands above here */
15821594
15831595 /* used to define NL80211_CMD_MAX below */
@@ -1835,7 +1847,7 @@ enum nl80211_commands { · 251 unmodified lines
18351847 * using %CMD_CONTROL_PORT_FRAME. If control port routing over NL80211 is
18361848 * to be used then userspace must also use the %NL80211_ATTR_SOCKET_OWNER
18371849 * flag. When used with %NL80211_ATTR_CONTROL_PORT_NO_PREAUTH, pre-auth
1838− * frames are not forwared over the control port.
1850+ * frames are not forwarded over the control port.
18391851 *
18401852 * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
18411853 * We recommend using nested, driver-specific attributes within this.
@@ -1972,10 +1984,10 @@ enum nl80211_commands { · 130 unmodified lines
19721984 * bit. Depending on which antennas are selected in the bitmap, 802.11n
19731985 * drivers can derive which chainmasks to use (if all antennas belonging to
19741986 * a particular chain are disabled this chain should be disabled) and if
1975− * a chain has diversity antennas wether diversity should be used or not.
1987+ * a chain has diversity antennas whether diversity should be used or not.
19761988 * HT capabilities (STBC, TX Beamforming, Antenna selection) can be
19771989 * derived from the available chains after applying the antenna mask.
1978− * Non-802.11n drivers can derive wether to use diversity or not.
1990+ * Non-802.11n drivers can derive whether to use diversity or not.
19791991 * Drivers may reject configurations or RX/TX mask combinations they cannot
19801992 * support by returning -EINVAL.
19811993 *
@@ -2545,7 +2557,7 @@ enum nl80211_commands { · 563 unmodified lines
25452557 * from successful FILS authentication and is used with
25462558 * %NL80211_CMD_CONNECT.
25472559 *
2548− * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertized by a FILS AP
2560+ * @NL80211_ATTR_FILS_CACHE_ID: A 2-octet identifier advertised by a FILS AP
25492561 * identifying the scope of PMKSAs. This is used with
25502562 * @NL80211_CMD_SET_PMKSA and @NL80211_CMD_DEL_PMKSA.
25512563 *
@@ -2826,6 +2838,19 @@ enum nl80211_commands { · 274 unmodified lines
28262838 * @NL80211_ATTR_MLO_LINK_DISABLED: Flag attribute indicating that the link is
28272839 * disabled.
28282840 *
2841+ * @NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA: Include BSS usage data, i.e.
2842+ * include BSSes that can only be used in restricted scenarios and/or
2843+ * cannot be used at all.
2844+ *
2845+ * @NL80211_ATTR_MLO_TTLM_DLINK: Binary attribute specifying the downlink TID to
2846+ * link mapping. The length is 8 * sizeof(u16). For each TID the link
2847+ * mapping is as defined in section 9.4.2.314 (TID-To-Link Mapping element)
2848+ * in Draft P802.11be_D4.0.
2849+ * @NL80211_ATTR_MLO_TTLM_ULINK: Binary attribute specifying the uplink TID to
2850+ * link mapping. The length is 8 * sizeof(u16). For each TID the link
2851+ * mapping is as defined in section 9.4.2.314 (TID-To-Link Mapping element)
2852+ * in Draft P802.11be_D4.0.
2853+ *
28292854 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
28302855 * @NL80211_ATTR_MAX: highest attribute number currently defined
28312856 * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3364,6 +3389,11 @@ enum nl80211_attrs { · 532 unmodified lines
33643389
33653390 NL80211_ATTR_MLO_LINK_DISABLED,
33663391
3392+ NL80211_ATTR_BSS_DUMP_INCLUDE_USE_DATA,
3393+
3394+ NL80211_ATTR_MLO_TTLM_DLINK,
3395+ NL80211_ATTR_MLO_TTLM_ULINK,
3396+
33673397 /* add attributes here, update the policy in nl80211.c */
33683398
33693399 __NL80211_ATTR_AFTER_LAST,
@@ -4170,7 +4200,7 @@ enum nl80211_wmm_rule { · 800 unmodified lines
41704200 * (100 * dBm).
41714201 * @NL80211_FREQUENCY_ATTR_DFS_STATE: current state for DFS
41724202 * (enum nl80211_dfs_state)
4173− * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in miliseconds for how long
4203+ * @NL80211_FREQUENCY_ATTR_DFS_TIME: time in milliseconds for how long
41744204 * this channel is in this DFS state.
41754205 * @NL80211_FREQUENCY_ATTR_NO_HT40_MINUS: HT40- isn't possible with this
41764206 * channel as the control channel
@@ -4226,6 +4256,14 @@ enum nl80211_wmm_rule { · 49 unmodified lines
42264256 * in current regulatory domain.
42274257 * @NL80211_FREQUENCY_ATTR_PSD: Power spectral density (in dBm) that
42284258 * is allowed on this channel in current regulatory domain.
4259+ * @NL80211_FREQUENCY_ATTR_DFS_CONCURRENT: Operation on this channel is
4260+ * allowed for peer-to-peer or adhoc communication under the control
4261+ * of a DFS master which operates on the same channel (FCC-594280 D01
4262+ * Section B.3). Should be used together with %NL80211_RRF_DFS only.
4263+ * @NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT: Client connection to VLP AP
4264+ * not allowed using this channel
4265+ * @NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT: Client connection to AFC AP
4266+ * not allowed using this channel
42294267 * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
42304268 * currently defined
42314269 * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
@@ -4265,6 +4303,9 @@ enum nl80211_frequency_attr { · 33 unmodified lines
42654303 NL80211_FREQUENCY_ATTR_NO_320MHZ,
42664304 NL80211_FREQUENCY_ATTR_NO_EHT,
42674305 NL80211_FREQUENCY_ATTR_PSD,
4306+ NL80211_FREQUENCY_ATTR_DFS_CONCURRENT,
4307+ NL80211_FREQUENCY_ATTR_NO_UHB_VLP_CLIENT,
4308+ NL80211_FREQUENCY_ATTR_NO_UHB_AFC_CLIENT,
42684309
42694310 /* keep last */
42704311 __NL80211_FREQUENCY_ATTR_AFTER_LAST,
@@ -4470,6 +4511,12 @@ enum nl80211_sched_scan_match_attr { · 199 unmodified lines
44704511 * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
44714512 * @NL80211_RRF_NO_EHT: EHT operation not allowed
44724513 * @NL80211_RRF_PSD: Ruleset has power spectral density value
4514+ * @NL80211_RRF_DFS_CONCURRENT: Operation on this channel is allowed for
4515+ peer-to-peer or adhoc communication under the control of a DFS master
4516+ which operates on the same channel (FCC-594280 D01 Section B.3).
4517+ Should be used together with %NL80211_RRF_DFS only.
4518+ * @NL80211_RRF_NO_UHB_VLP_CLIENT: Client connection to VLP AP not allowed
4519+ * @NL80211_RRF_NO_UHB_AFC_CLIENT: Client connection to AFC AP not allowed
44734520 */
44744521 enum nl80211_reg_rule_flags {
44754522 NL80211_RRF_NO_OFDM = 1<<0,
@@ -4491,6 +4538,9 @@ enum nl80211_reg_rule_flags { · 15 unmodified lines
44914538 NL80211_RRF_NO_320MHZ = 1<<18,
44924539 NL80211_RRF_NO_EHT = 1<<19,
44934540 NL80211_RRF_PSD = 1<<20,
4541+ NL80211_RRF_DFS_CONCURRENT = 1<<21,
4542+ NL80211_RRF_NO_UHB_VLP_CLIENT = 1<<22,
4543+ NL80211_RRF_NO_UHB_AFC_CLIENT = 1<<23,
44944544 };
44954545
44964546 #define NL80211_RRF_PASSIVE_SCAN NL80211_RRF_NO_IR
@@ -5027,6 +5077,33 @@ enum nl80211_bss_scan_width { · 530 unmodified lines
50275077 NL80211_BSS_CHAN_WIDTH_2,
50285078 };
50295079
5080+/**
5081+ * enum nl80211_bss_use_for - bitmap indicating possible BSS use
5082+ * @NL80211_BSS_USE_FOR_NORMAL: Use this BSS for normal "connection",
5083+ * including IBSS/MBSS depending on the type.
5084+ * @NL80211_BSS_USE_FOR_MLD_LINK: This BSS can be used as a link in an
5085+ * MLO connection. Note that for an MLO connection, all links including
5086+ * the assoc link must have this flag set, and the assoc link must
5087+ * additionally have %NL80211_BSS_USE_FOR_NORMAL set.
5088+ */
5089+enum nl80211_bss_use_for {
5090+ NL80211_BSS_USE_FOR_NORMAL = 1 << 0,
5091+ NL80211_BSS_USE_FOR_MLD_LINK = 1 << 1,
5092+};
5093+
5094+/**
5095+ * enum nl80211_bss_cannot_use_reasons - reason(s) connection to a
5096+ * BSS isn't possible
5097+ * @NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY: NSTR nonprimary links aren't
5098+ * supported by the device, and this BSS entry represents one.
5099+ * @NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH: STA is not supporting
5100+ * the AP power type (SP, VLP, AP) that the AP uses.
5101+ */
5102+enum nl80211_bss_cannot_use_reasons {
5103+ NL80211_BSS_CANNOT_USE_NSTR_NONPRIMARY = 1 << 0,
5104+ NL80211_BSS_CANNOT_USE_UHB_PWR_MISMATCH = 1 << 1,
5105+};
5106+
50305107 /**
50315108 * enum nl80211_bss - netlink attributes for a BSS
50325109 *
@@ -5079,6 +5156,14 @@ enum nl80211_bss_scan_width { · 46 unmodified lines
50795156 * @NL80211_BSS_FREQUENCY_OFFSET: frequency offset in KHz
50805157 * @NL80211_BSS_MLO_LINK_ID: MLO link ID of the BSS (u8).
50815158 * @NL80211_BSS_MLD_ADDR: MLD address of this BSS if connected to it.
5159+ * @NL80211_BSS_USE_FOR: u32 bitmap attribute indicating what the BSS can be
5160+ * used for, see &enum nl80211_bss_use_for.
5161+ * @NL80211_BSS_CANNOT_USE_REASONS: Indicates the reason that this BSS cannot
5162+ * be used for all or some of the possible uses by the device reporting it,
5163+ * even though its presence was detected.
5164+ * This is a u64 attribute containing a bitmap of values from
5165+ * &enum nl80211_cannot_use_reasons, note that the attribute may be missing
5166+ * if no reasons are specified.
50825167 * @__NL80211_BSS_AFTER_LAST: internal
50835168 * @NL80211_BSS_MAX: highest BSS attribute
50845169 */
@@ -5106,6 +5191,8 @@ enum nl80211_bss { · 21 unmodified lines
51065191 NL80211_BSS_FREQUENCY_OFFSET,
51075192 NL80211_BSS_MLO_LINK_ID,
51085193 NL80211_BSS_MLD_ADDR,
5194+ NL80211_BSS_USE_FOR,
5195+ NL80211_BSS_CANNOT_USE_REASONS,
51095196
51105197 /* keep last */
51115198 __NL80211_BSS_AFTER_LAST,
@@ -5454,7 +5541,7 @@ enum nl80211_tx_rate_setting { · 342 unmodified lines
54545541 * (%NL80211_TID_CONFIG_ATTR_TIDS, %NL80211_TID_CONFIG_ATTR_OVERRIDE).
54555542 * @NL80211_TID_CONFIG_ATTR_PEER_SUPP: same as the previous per-vif one, but
54565543 * per peer instead.
5457− * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribue, if set indicates
5544+ * @NL80211_TID_CONFIG_ATTR_OVERRIDE: flag attribute, if set indicates
54585545 * that the new configuration overrides all previous peer
54595546 * configurations, otherwise previous peer specific configurations
54605547 * should be left untouched.
@@ -5837,7 +5924,7 @@ enum nl80211_attr_coalesce_rule { · 376 unmodified lines
58375924
58385925 /**
58395926 * enum nl80211_coalesce_condition - coalesce rule conditions
5840− * @NL80211_COALESCE_CONDITION_MATCH: coalaesce Rx packets when patterns
5927+ * @NL80211_COALESCE_CONDITION_MATCH: coalesce Rx packets when patterns
58415928 * in a rule are matched.
58425929 * @NL80211_COALESCE_CONDITION_NO_MATCH: coalesce Rx packets when patterns
58435930 * in a rule are not matched.
@@ -5936,7 +6023,7 @@ enum nl80211_if_combination_attrs { · 92 unmodified lines
59366023 * enum nl80211_plink_state - state of a mesh peer link finite state machine
59376024 *
59386025 * @NL80211_PLINK_LISTEN: initial state, considered the implicit
5939− * state of non existent mesh peer links
6026+ * state of non-existent mesh peer links
59406027 * @NL80211_PLINK_OPN_SNT: mesh plink open frame has been sent to
59416028 * this mesh peer
59426029 * @NL80211_PLINK_OPN_RCVD: mesh plink open frame has been received
@@ -6229,7 +6316,7 @@ enum nl80211_feature_flags { · 286 unmodified lines
62296316 * request to use RRM (see %NL80211_ATTR_USE_RRM) with
62306317 * %NL80211_CMD_ASSOCIATE and %NL80211_CMD_CONNECT requests, which will set
62316318 * the ASSOC_REQ_USE_RRM flag in the association request even if
6232− * NL80211_FEATURE_QUIET is not advertized.
6319+ * NL80211_FEATURE_QUIET is not advertised.
62336320 * @NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER: This device supports MU-MIMO air
62346321 * sniffer which means that it can be configured to hear packets from
62356322 * certain groups which can be configured by the
@@ -6241,13 +6328,15 @@ enum nl80211_feature_flags { · 5 unmodified lines
62416328 * the BSS that the interface that requested the scan is connected to
62426329 * (if available).
62436330 * @NL80211_EXT_FEATURE_BSS_PARENT_TSF: Per BSS, this driver reports the
6244− * time the last beacon/probe was received. The time is the TSF of the
6245− * BSS that the interface that requested the scan is connected to
6246− * (if available).
6331+ * time the last beacon/probe was received. For a non-MLO connection, the
6332+ * time is the TSF of the BSS that the interface that requested the scan is
6333+ * connected to (if available). For an MLO connection, the time is the TSF
6334+ * of the BSS corresponding with link ID specified in the scan request (if
6335+ * specified).
62476336 * @NL80211_EXT_FEATURE_SET_SCAN_DWELL: This driver supports configuration of
62486337 * channel dwell time.
62496338 * @NL80211_EXT_FEATURE_BEACON_RATE_LEGACY: Driver supports beacon rate
6250− * configuration (AP/mesh), supporting a legacy (non HT/VHT) rate.
6339+ * configuration (AP/mesh), supporting a legacy (non-HT/VHT) rate.
62516340 * @NL80211_EXT_FEATURE_BEACON_RATE_HT: Driver supports beacon rate
62526341 * configuration (AP/mesh) with HT rates.
62536342 * @NL80211_EXT_FEATURE_BEACON_RATE_VHT: Driver supports beacon rate
@@ -6426,6 +6515,11 @@ enum nl80211_feature_flags { · 172 unmodified lines
64266515 * @NL80211_EXT_FEATURE_OWE_OFFLOAD_AP: Driver/Device wants to do OWE DH IE
64276516 * handling in AP mode.
64286517 *
6518+ * @NL80211_EXT_FEATURE_DFS_CONCURRENT: The device supports peer-to-peer or
6519+ * ad hoc operation on DFS channels under the control of a concurrent
6520+ * DFS master on the same channel as described in FCC-594280 D01
6521+ * (Section B.3). This, for example, allows P2P GO and P2P clients to
6522+ * operate on DFS channels as long as there's a concurrent BSS connection.
64296523 * @NUM_NL80211_EXT_FEATURES: number of extended features.
64306524 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
64316525 */
@@ -6499,6 +6593,7 @@ enum nl80211_ext_feature_index { · 67 unmodified lines
64996593 NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA,
65006594 NL80211_EXT_FEATURE_OWE_OFFLOAD,
65016595 NL80211_EXT_FEATURE_OWE_OFFLOAD_AP,
6596+ NL80211_EXT_FEATURE_DFS_CONCURRENT,
65026597
65036598 /* add new features before the definition below */
65046599 NUM_NL80211_EXT_FEATURES,
@@ -6583,7 +6678,7 @@ enum nl80211_timeout_reason { · 78 unmodified lines
65836678 * request parameters IE in the probe request
65846679 * @NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP: accept broadcast probe responses
65856680 * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE: send probe request frames at
6586− * rate of at least 5.5M. In case non OCE AP is discovered in the channel,
6681+ * rate of at least 5.5M. In case non-OCE AP is discovered in the channel,
65876682 * only the first probe req in the channel will be sent in high rate.
65886683 * @NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION: allow probe request
65896684 * tx deferral (dot11FILSProbeDelay shall be set to 15ms)
@@ -6619,7 +6714,7 @@ enum nl80211_timeout_reason { · 29 unmodified lines
66196714 * received on the 2.4/5 GHz channels to actively scan only the 6GHz
66206715 * channels on which APs are expected to be found. Note that when not set,
66216716 * the scan logic would scan all 6GHz channels, but since transmission of
6622− * probe requests on non PSC channels is limited, it is highly likely that
6717+ * probe requests on non-PSC channels is limited, it is highly likely that
66236718 * these channels would passively be scanned. Also note that when the flag
66246719 * is set, in addition to the colocated APs, PSC channels would also be
66256720 * scanned if the user space has asked for it.
@@ -6951,7 +7046,7 @@ enum nl80211_nan_func_term_reason { · 325 unmodified lines
69517046 * The instance ID for the follow up Service Discovery Frame. This is u8.
69527047 * @NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID: relevant if the function's type
69537048 * is follow up. This is a u8.
6954− * The requestor instance ID for the follow up Service Discovery Frame.
7049+ * The requester instance ID for the follow up Service Discovery Frame.
69557050 * @NL80211_NAN_FUNC_FOLLOW_UP_DEST: the MAC address of the recipient of the
69567051 * follow up Service Discovery Frame. This is a binary attribute.
69577052 * @NL80211_NAN_FUNC_CLOSE_RANGE: is this function limited for devices in a
@@ -7341,7 +7436,7 @@ enum nl80211_peer_measurement_attrs { · 383 unmodified lines
73417436 * @NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED: flag attribute indicating if
73427437 * trigger based ranging measurement is supported
73437438 * @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
7344− * if non trigger based ranging measurement is supported
7439+ * if non-trigger-based ranging measurement is supported
73457440 *
73467441 * @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
73477442 * @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
@@ -7395,7 +7490,7 @@ enum nl80211_peer_measurement_ftm_capa { · 47 unmodified lines
73957490 * if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
73967491 * %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
73977492 * ranging will be used.
7398− * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non trigger based
7493+ * @NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED: request non-trigger-based
73997494 * ranging measurement (flag)
74007495 * This attribute and %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED are
74017496 * mutually exclusive.
@@ -7473,7 +7568,7 @@ enum nl80211_peer_measurement_ftm_failure_reasons { · 71 unmodified lines
74737568 * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS: number of FTM Request frames
74747569 * transmitted (u32, optional)
74757570 * @NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES: number of FTM Request frames
7476− * that were acknowleged (u32, optional)
7571+ * that were acknowledged (u32, optional)
74777572 * @NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME: retry time received from the
74787573 * busy peer (u32, seconds)
74797574 * @NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP: actual number of bursts exponent
include/uapi/linux/nsm.h+31−0
@@ -0,0 +1,31 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+ */
5+
6+#ifndef __UAPI_LINUX_NSM_H
7+#define __UAPI_LINUX_NSM_H
8+
9+#include <linux/ioctl.h>
10+#include <linux/types.h>
11+
12+#define NSM_MAGIC 0x0A
13+
14+#define NSM_REQUEST_MAX_SIZE 0x1000
15+#define NSM_RESPONSE_MAX_SIZE 0x3000
16+
17+struct nsm_iovec {
18+ __u64 addr; /* Virtual address of target buffer */
19+ __u64 len; /* Length of target buffer */
20+};
21+
22+/* Raw NSM message. Only available with CAP_SYS_ADMIN. */
23+struct nsm_raw {
24+ /* Request from user */
25+ struct nsm_iovec request;
26+ /* Response to user */
27+ struct nsm_iovec response;
28+};
29+#define NSM_IOCTL_RAW _IOWR(NSM_MAGIC, 0x0, struct nsm_raw)
30+
31+#endif /* __UAPI_LINUX_NSM_H */
include/uapi/linux/pcitest.h+2−1
@@ -11,7 +11,8 @@ · 10 unmodified lines
1111 #define __UAPI_LINUX_PCITEST_H
1212
1313 #define PCITEST_BAR _IO('P', 0x1)
14−#define PCITEST_LEGACY_IRQ _IO('P', 0x2)
14+#define PCITEST_INTX_IRQ _IO('P', 0x2)
15+#define PCITEST_LEGACY_IRQ PCITEST_INTX_IRQ
1516 #define PCITEST_MSI _IOW('P', 0x3, int)
1617 #define PCITEST_WRITE _IOW('P', 0x4, unsigned long)
1718 #define PCITEST_READ _IOW('P', 0x5, unsigned long)
include/uapi/linux/perf_event.h+13−0
@@ -204,6 +204,8 @@ enum perf_branch_sample_type_shift { · 203 unmodified lines
204204
205205 PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 18, /* save privilege mode */
206206
207+ PERF_SAMPLE_BRANCH_COUNTERS_SHIFT = 19, /* save occurrences of events on a branch */
208+
207209 PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
208210 };
209211
@@ -235,6 +237,8 @@ enum perf_branch_sample_type { · 25 unmodified lines
235237
236238 PERF_SAMPLE_BRANCH_PRIV_SAVE = 1U << PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT,
237239
240+ PERF_SAMPLE_BRANCH_COUNTERS = 1U << PERF_SAMPLE_BRANCH_COUNTERS_SHIFT,
241+
238242 PERF_SAMPLE_BRANCH_MAX = 1U << PERF_SAMPLE_BRANCH_MAX_SHIFT,
239243 };
240244
@@ -982,6 +986,12 @@ enum perf_event_type { · 741 unmodified lines
982986 * { u64 nr;
983987 * { u64 hw_idx; } && PERF_SAMPLE_BRANCH_HW_INDEX
984988 * { u64 from, to, flags } lbr[nr];
989+ * #
990+ * # The format of the counters is decided by the
991+ * # "branch_counter_nr" and "branch_counter_width",
992+ * # which are defined in the ABI.
993+ * #
994+ * { u64 counters; } cntr[nr] && PERF_SAMPLE_BRANCH_COUNTERS
985995 * } && PERF_SAMPLE_BRANCH_STACK
986996 *
987997 * { u64 abi; # enum perf_sample_regs_abi
@@ -1427,6 +1437,9 @@ struct perf_branch_entry { · 439 unmodified lines
14271437 reserved:31;
14281438 };
14291439
1440+/* Size of used info bits in struct perf_branch_entry */
1441+#define PERF_BRANCH_ENTRY_INFO_BITS_MAX 33
1442+
14301443 union perf_sample_weight {
14311444 __u64 full;
14321445 #if defined(__LITTLE_ENDIAN_BITFIELD)
include/uapi/linux/pkt_cls.h+2−49
@@ -99,7 +99,7 @@ enum { · 98 unmodified lines
9999 * versions.
100100 */
101101 #define TCA_ACT_GACT 5
102−#define TCA_ACT_IPT 6
102+#define TCA_ACT_IPT 6 /* obsoleted, can be reused */
103103 #define TCA_ACT_PEDIT 7
104104 #define TCA_ACT_MIRRED 8
105105 #define TCA_ACT_NAT 9
@@ -120,7 +120,7 @@ enum tca_id { · 14 unmodified lines
120120 TCA_ID_UNSPEC = 0,
121121 TCA_ID_POLICE = 1,
122122 TCA_ID_GACT = TCA_ACT_GACT,
123− TCA_ID_IPT = TCA_ACT_IPT,
123+ TCA_ID_IPT = TCA_ACT_IPT, /* Obsoleted, can be reused */
124124 TCA_ID_PEDIT = TCA_ACT_PEDIT,
125125 TCA_ID_MIRRED = TCA_ACT_MIRRED,
126126 TCA_ID_NAT = TCA_ACT_NAT,
@@ -280,37 +280,6 @@ struct tc_u32_pcnt { · 153 unmodified lines
280280
281281 #define TC_U32_MAXDEPTH 8
282282
283−
284−/* RSVP filter */
285−
286−enum {
287− TCA_RSVP_UNSPEC,
288− TCA_RSVP_CLASSID,
289− TCA_RSVP_DST,
290− TCA_RSVP_SRC,
291− TCA_RSVP_PINFO,
292− TCA_RSVP_POLICE,
293− TCA_RSVP_ACT,
294− __TCA_RSVP_MAX
295−};
296−
297−#define TCA_RSVP_MAX (__TCA_RSVP_MAX - 1 )
298−
299−struct tc_rsvp_gpi {
300− __u32 key;
301− __u32 mask;
302− int offset;
303−};
304−
305−struct tc_rsvp_pinfo {
306− struct tc_rsvp_gpi dpi;
307− struct tc_rsvp_gpi spi;
308− __u8 protocol;
309− __u8 tunnelid;
310− __u8 tunnelhdr;
311− __u8 pad;
312−};
313−
314283 /* ROUTE filter */
315284
316285 enum {
@@ -341,22 +310,6 @@ enum { · 24 unmodified lines
341310
342311 #define TCA_FW_MAX (__TCA_FW_MAX - 1)
343312
344−/* TC index filter */
345−
346−enum {
347− TCA_TCINDEX_UNSPEC,
348− TCA_TCINDEX_HASH,
349− TCA_TCINDEX_MASK,
350− TCA_TCINDEX_SHIFT,
351− TCA_TCINDEX_FALL_THROUGH,
352− TCA_TCINDEX_CLASSID,
353− TCA_TCINDEX_POLICE,
354− TCA_TCINDEX_ACT,
355− __TCA_TCINDEX_MAX
356−};
357−
358−#define TCA_TCINDEX_MAX (__TCA_TCINDEX_MAX - 1)
359−
360313 /* Flow filter */
361314
362315 enum {
include/uapi/linux/pkt_sched.h+0−109
@@ -477,115 +477,6 @@ enum { · 476 unmodified lines
477477
478478 #define TCA_HFSC_MAX (__TCA_HFSC_MAX - 1)
479479
480−
481−/* CBQ section */
482−
483−#define TC_CBQ_MAXPRIO 8
484−#define TC_CBQ_MAXLEVEL 8
485−#define TC_CBQ_DEF_EWMA 5
486−
487−struct tc_cbq_lssopt {
488− unsigned char change;
489− unsigned char flags;
490−#define TCF_CBQ_LSS_BOUNDED 1
491−#define TCF_CBQ_LSS_ISOLATED 2
492− unsigned char ewma_log;
493− unsigned char level;
494−#define TCF_CBQ_LSS_FLAGS 1
495−#define TCF_CBQ_LSS_EWMA 2
496−#define TCF_CBQ_LSS_MAXIDLE 4
497−#define TCF_CBQ_LSS_MINIDLE 8
498−#define TCF_CBQ_LSS_OFFTIME 0x10
499−#define TCF_CBQ_LSS_AVPKT 0x20
500− __u32 maxidle;
501− __u32 minidle;
502− __u32 offtime;
503− __u32 avpkt;
504−};
505−
506−struct tc_cbq_wrropt {
507− unsigned char flags;
508− unsigned char priority;
509− unsigned char cpriority;
510− unsigned char __reserved;
511− __u32 allot;
512− __u32 weight;
513−};
514−
515−struct tc_cbq_ovl {
516− unsigned char strategy;
517−#define TC_CBQ_OVL_CLASSIC 0
518−#define TC_CBQ_OVL_DELAY 1
519−#define TC_CBQ_OVL_LOWPRIO 2
520−#define TC_CBQ_OVL_DROP 3
521−#define TC_CBQ_OVL_RCLASSIC 4
522− unsigned char priority2;
523− __u16 pad;
524− __u32 penalty;
525−};
526−
527−struct tc_cbq_police {
528− unsigned char police;
529− unsigned char __res1;
530− unsigned short __res2;
531−};
532−
533−struct tc_cbq_fopt {
534− __u32 split;
535− __u32 defmap;
536− __u32 defchange;
537−};
538−
539−struct tc_cbq_xstats {
540− __u32 borrows;
541− __u32 overactions;
542− __s32 avgidle;
543− __s32 undertime;
544−};
545−
546−enum {
547− TCA_CBQ_UNSPEC,
548− TCA_CBQ_LSSOPT,
549− TCA_CBQ_WRROPT,
550− TCA_CBQ_FOPT,
551− TCA_CBQ_OVL_STRATEGY,
552− TCA_CBQ_RATE,
553− TCA_CBQ_RTAB,
554− TCA_CBQ_POLICE,
555− __TCA_CBQ_MAX,
556−};
557−
558−#define TCA_CBQ_MAX (__TCA_CBQ_MAX - 1)
559−
560−/* dsmark section */
561−
562−enum {
563− TCA_DSMARK_UNSPEC,
564− TCA_DSMARK_INDICES,
565− TCA_DSMARK_DEFAULT_INDEX,
566− TCA_DSMARK_SET_TC_INDEX,
567− TCA_DSMARK_MASK,
568− TCA_DSMARK_VALUE,
569− __TCA_DSMARK_MAX,
570−};
571−
572−#define TCA_DSMARK_MAX (__TCA_DSMARK_MAX - 1)
573−
574−/* ATM section */
575−
576−enum {
577− TCA_ATM_UNSPEC,
578− TCA_ATM_FD, /* file/socket descriptor */
579− TCA_ATM_PTR, /* pointer to descriptor - later */
580− TCA_ATM_HDR, /* LL header */
581− TCA_ATM_EXCESS, /* excess traffic class (0 for CLP) */
582− TCA_ATM_ADDR, /* PVC address (for output only) */
583− TCA_ATM_STATE, /* VC state (ATM_VS_*; for output only) */
584− __TCA_ATM_MAX,
585−};
586−
587−#define TCA_ATM_MAX (__TCA_ATM_MAX - 1)
588−
589480 /* Network emulator */
590481
591482 enum {
include/uapi/linux/raid/md_p.h+2−6
@@ -2,15 +2,11 @@ · 1 unmodified line
22 /*
33 md_p.h : physical layout of Linux RAID devices
44 Copyright (C) 1996-98 Ingo Molnar, Gadi Oxman
5−
5+
66 This program is free software; you can redistribute it and/or modify
77 it under the terms of the GNU General Public License as published by
88 the Free Software Foundation; either version 2, or (at your option)
99 any later version.
10−
11− You should have received a copy of the GNU General Public License
12− (for example /usr/src/linux/COPYING); if not, write to the Free
13− Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1410 */
1511
1612 #ifndef _MD_P_H
@@ -237,7 +233,7 @@ struct mdp_superblock_1 { · 220 unmodified lines
237233 char set_name[32]; /* set and interpreted by user-space */
238234
239235 __le64 ctime; /* lo 40 bits are seconds, top 24 are microseconds or 0*/
240− __le32 level; /* -4 (multipath), -1 (linear), 0,1,4,5 */
236+ __le32 level; /* 0,1,4,5 */
241237 __le32 layout; /* only for raid5 and raid10 currently */
242238 __le64 size; /* used size of component devices, in 512byte sectors */
243239
include/uapi/linux/raid/md_u.h+1−10
@@ -2,15 +2,11 @@ · 1 unmodified line
22 /*
33 md_u.h : user <=> kernel API between Linux raidtools and RAID drivers
44 Copyright (C) 1998 Ingo Molnar
5−
5+
66 This program is free software; you can redistribute it and/or modify
77 it under the terms of the GNU General Public License as published by
88 the Free Software Foundation; either version 2, or (at your option)
99 any later version.
10−
11− You should have received a copy of the GNU General Public License
12− (for example /usr/src/linux/COPYING); if not, write to the Free
13− Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1410 */
1511
1612 #ifndef _UAPI_MD_U_H
@@ -107,11 +103,6 @@ typedef struct mdu_array_info_s { · 90 unmodified lines
107103
108104 } mdu_array_info_t;
109105
110−/* non-obvious values for 'level' */
111−#define LEVEL_MULTIPATH (-4)
112−#define LEVEL_LINEAR (-1)
113−#define LEVEL_FAULTY (-5)
114−
115106 /* we need a value for 'no level specified' and 0
116107 * means 'raid0', so we need something else. This is
117108 * for internal use only
include/uapi/linux/resource.h+1−1
@@ -2,7 +2,7 @@ · 1 unmodified line
22 #ifndef _UAPI_LINUX_RESOURCE_H
33 #define _UAPI_LINUX_RESOURCE_H
44
5−#include <linux/time.h>
5+#include <linux/time_types.h>
66 #include <linux/types.h>
77
88 /*
include/uapi/linux/serial.h+11−8
@@ -11,6 +11,7 @@ · 10 unmodified lines
1111 #ifndef _UAPI_LINUX_SERIAL_H
1212 #define _UAPI_LINUX_SERIAL_H
1313
14+#include <linux/const.h>
1415 #include <linux/types.h>
1516
1617 #include <linux/tty_flags.h>
@@ -137,17 +138,19 @@ struct serial_icounter_struct { · 120 unmodified lines
137138 * * %SER_RS485_ADDRB - Enable RS485 addressing mode.
138139 * * %SER_RS485_ADDR_RECV - Receive address filter (enables @addr_recv). Requires %SER_RS485_ADDRB.
139140 * * %SER_RS485_ADDR_DEST - Destination address (enables @addr_dest). Requires %SER_RS485_ADDRB.
141+ * * %SER_RS485_MODE_RS422 - Enable RS422. Requires %SER_RS485_ENABLED.
140142 */
141143 struct serial_rs485 {
142144 __u32 flags;
143−#define SER_RS485_ENABLED (1 << 0)
144−#define SER_RS485_RTS_ON_SEND (1 << 1)
145−#define SER_RS485_RTS_AFTER_SEND (1 << 2)
146−#define SER_RS485_RX_DURING_TX (1 << 4)
147−#define SER_RS485_TERMINATE_BUS (1 << 5)
148−#define SER_RS485_ADDRB (1 << 6)
149−#define SER_RS485_ADDR_RECV (1 << 7)
150−#define SER_RS485_ADDR_DEST (1 << 8)
145+#define SER_RS485_ENABLED _BITUL(0)
146+#define SER_RS485_RTS_ON_SEND _BITUL(1)
147+#define SER_RS485_RTS_AFTER_SEND _BITUL(2)
148+#define SER_RS485_RX_DURING_TX _BITUL(3)
149+#define SER_RS485_TERMINATE_BUS _BITUL(4)
150+#define SER_RS485_ADDRB _BITUL(5)
151+#define SER_RS485_ADDR_RECV _BITUL(6)
152+#define SER_RS485_ADDR_DEST _BITUL(7)
153+#define SER_RS485_MODE_RS422 _BITUL(8)
151154
152155 __u32 delay_rts_before_send;
153156 __u32 delay_rts_after_send;
include/uapi/linux/smc.h+2−0
@@ -160,6 +160,8 @@ enum { · 159 unmodified lines
160160 SMC_NLA_LGR_D_CHID, /* u16 */
161161 SMC_NLA_LGR_D_PAD, /* flag */
162162 SMC_NLA_LGR_D_V2_COMMON, /* nest */
163+ SMC_NLA_LGR_D_EXT_GID, /* u64 */
164+ SMC_NLA_LGR_D_PEER_EXT_GID, /* u64 */
163165 __SMC_NLA_LGR_D_MAX,
164166 SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
165167 };
include/uapi/linux/smc_diag.h+2−0
@@ -107,6 +107,8 @@ struct smcd_diag_dmbinfo { /* SMC-D Socket internals */ · 106 unmodified lines
107107 __aligned_u64 my_gid; /* My GID */
108108 __aligned_u64 token; /* Token of DMB */
109109 __aligned_u64 peer_token; /* Token of remote DMBE */
110+ __aligned_u64 peer_gid_ext; /* Peer GID (extended part) */
111+ __aligned_u64 my_gid_ext; /* My GID (extended part) */
110112 };
111113
112114 #endif /* _UAPI_SMC_DIAG_H_ */
include/uapi/linux/stat.h+1−0
@@ -154,6 +154,7 @@ struct statx { · 153 unmodified lines
154154 #define STATX_BTIME 0x00000800U /* Want/got stx_btime */
155155 #define STATX_MNT_ID 0x00001000U /* Got stx_mnt_id */
156156 #define STATX_DIOALIGN 0x00002000U /* Want/got direct I/O alignment info */
157+#define STATX_MNT_ID_UNIQUE 0x00004000U /* Want/got extended stx_mount_id */
157158
158159 #define STATX__RESERVED 0x80000000U /* Reserved for future struct statx expansion */
159160
include/uapi/linux/stddef.h+1−1
@@ -27,7 +27,7 @@ · 26 unmodified lines
2727 union { \
2828 struct { MEMBERS } ATTRS; \
2929 struct TAG { MEMBERS } ATTRS NAME; \
30− }
30+ } ATTRS
3131
3232 #ifdef __cplusplus
3333 /* sizeof(struct{}) is 1 in C++, not 0, can't use C version of the macro. */
include/uapi/linux/tc_act/tc_ipt.h+0−20
@@ -1,20 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−#ifndef __LINUX_TC_IPT_H
3−#define __LINUX_TC_IPT_H
4−
5−#include <linux/pkt_cls.h>
6−
7−enum {
8− TCA_IPT_UNSPEC,
9− TCA_IPT_TABLE,
10− TCA_IPT_HOOK,
11− TCA_IPT_INDEX,
12− TCA_IPT_CNT,
13− TCA_IPT_TM,
14− TCA_IPT_TARG,
15− TCA_IPT_PAD,
16− __TCA_IPT_MAX
17−};
18−#define TCA_IPT_MAX (__TCA_IPT_MAX - 1)
19−
20−#endif
include/uapi/linux/tc_act/tc_mirred.h+1−0
@@ -21,6 +21,7 @@ enum { · 20 unmodified lines
2121 TCA_MIRRED_TM,
2222 TCA_MIRRED_PARMS,
2323 TCA_MIRRED_PAD,
24+ TCA_MIRRED_BLOCKID,
2425 __TCA_MIRRED_MAX
2526 };
2627 #define TCA_MIRRED_MAX (__TCA_MIRRED_MAX - 1)
include/uapi/linux/thp7312.h+19−0
@@ -0,0 +1,19 @@
1+/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
2+/*
3+ * THine THP7312 user space header file.
4+ *
5+ * Copyright (C) 2021 THine Electronics, Inc.
6+ * Copyright (C) 2023 Ideas on Board Oy
7+ */
8+
9+#ifndef __UAPI_THP7312_H_
10+#define __UAPI_THP7312_H_
11+
12+#include <linux/v4l2-controls.h>
13+
14+#define V4L2_CID_THP7312_LOW_LIGHT_COMPENSATION (V4L2_CID_USER_THP7312_BASE + 0x01)
15+#define V4L2_CID_THP7312_AUTO_FOCUS_METHOD (V4L2_CID_USER_THP7312_BASE + 0x02)
16+#define V4L2_CID_THP7312_NOISE_REDUCTION_AUTO (V4L2_CID_USER_THP7312_BASE + 0x03)
17+#define V4L2_CID_THP7312_NOISE_REDUCTION_ABSOLUTE (V4L2_CID_USER_THP7312_BASE + 0x04)
18+
19+#endif /* __UAPI_THP7312_H_ */
include/uapi/linux/usb/functionfs.h+4−2
@@ -73,8 +73,10 @@ struct usb_os_desc_header { · 72 unmodified lines
7373 struct usb_ext_compat_desc {
7474 __u8 bFirstInterfaceNumber;
7575 __u8 Reserved1;
76− __u8 CompatibleID[8];
77− __u8 SubCompatibleID[8];
76+ __struct_group(/* no tag */, IDs, /* no attrs */,
77+ __u8 CompatibleID[8];
78+ __u8 SubCompatibleID[8];
79+ );
7880 __u8 Reserved2[6];
7981 };
8082
include/uapi/linux/userfaultfd.h+28−1
@@ -41,7 +41,8 @@ · 40 unmodified lines
4141 UFFD_FEATURE_WP_HUGETLBFS_SHMEM | \
4242 UFFD_FEATURE_WP_UNPOPULATED | \
4343 UFFD_FEATURE_POISON | \
44− UFFD_FEATURE_WP_ASYNC)
44+ UFFD_FEATURE_WP_ASYNC | \
45+ UFFD_FEATURE_MOVE)
4546 #define UFFD_API_IOCTLS \
4647 ((__u64)1 << _UFFDIO_REGISTER | \
4748 (__u64)1 << _UFFDIO_UNREGISTER | \
@@ -50,6 +51,7 @@ · 2 unmodified lines
5051 ((__u64)1 << _UFFDIO_WAKE | \
5152 (__u64)1 << _UFFDIO_COPY | \
5253 (__u64)1 << _UFFDIO_ZEROPAGE | \
54+ (__u64)1 << _UFFDIO_MOVE | \
5355 (__u64)1 << _UFFDIO_WRITEPROTECT | \
5456 (__u64)1 << _UFFDIO_CONTINUE | \
5557 (__u64)1 << _UFFDIO_POISON)
@@ -73,6 +75,7 @@ · 17 unmodified lines
7375 #define _UFFDIO_WAKE (0x02)
7476 #define _UFFDIO_COPY (0x03)
7577 #define _UFFDIO_ZEROPAGE (0x04)
78+#define _UFFDIO_MOVE (0x05)
7679 #define _UFFDIO_WRITEPROTECT (0x06)
7780 #define _UFFDIO_CONTINUE (0x07)
7881 #define _UFFDIO_POISON (0x08)
@@ -92,6 +95,8 @@ · 13 unmodified lines
9295 struct uffdio_copy)
9396 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, \
9497 struct uffdio_zeropage)
98+#define UFFDIO_MOVE _IOWR(UFFDIO, _UFFDIO_MOVE, \
99+ struct uffdio_move)
95100 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \
96101 struct uffdio_writeprotect)
97102 #define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, \
@@ -222,6 +227,9 @@ struct uffdio_api { · 124 unmodified lines
222227 * asynchronous mode is supported in which the write fault is
223228 * automatically resolved and write-protection is un-set.
224229 * It implies UFFD_FEATURE_WP_UNPOPULATED.
230+ *
231+ * UFFD_FEATURE_MOVE indicates that the kernel supports moving an
232+ * existing page contents from userspace.
225233 */
226234 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1<<0)
227235 #define UFFD_FEATURE_EVENT_FORK (1<<1)
@@ -239,6 +247,7 @@ struct uffdio_api { · 11 unmodified lines
239247 #define UFFD_FEATURE_WP_UNPOPULATED (1<<13)
240248 #define UFFD_FEATURE_POISON (1<<14)
241249 #define UFFD_FEATURE_WP_ASYNC (1<<15)
250+#define UFFD_FEATURE_MOVE (1<<16)
242251 __u64 features;
243252
244253 __u64 ioctls;
@@ -347,6 +356,24 @@ struct uffdio_poison { · 102 unmodified lines
347356 __s64 updated;
348357 };
349358
359+struct uffdio_move {
360+ __u64 dst;
361+ __u64 src;
362+ __u64 len;
363+ /*
364+ * Especially if used to atomically remove memory from the
365+ * address space the wake on the dst range is not needed.
366+ */
367+#define UFFDIO_MOVE_MODE_DONTWAKE ((__u64)1<<0)
368+#define UFFDIO_MOVE_MODE_ALLOW_SRC_HOLES ((__u64)1<<1)
369+ __u64 mode;
370+ /*
371+ * "move" is written by the ioctl and must be at the end: the
372+ * copy_from_user will not read the last 8 bytes.
373+ */
374+ __s64 move;
375+};
376+
350377 /*
351378 * Flags for the userfaultfd(2) system call itself.
352379 */
include/uapi/linux/v4l2-controls.h+6−0
@@ -209,6 +209,12 @@ enum v4l2_colorfx { · 208 unmodified lines
209209 */
210210 #define V4L2_CID_USER_NPCM_BASE (V4L2_CID_USER_BASE + 0x11b0)
211211
212+/*
213+ * The base for THine THP7312 driver controls.
214+ * We reserve 32 controls for this driver.
215+ */
216+#define V4L2_CID_USER_THP7312_BASE (V4L2_CID_USER_BASE + 0x11c0)
217+
212218 /* MPEG-class control IDs */
213219 /* The MPEG controls are applicable to all codec controls
214220 * and the 'MPEG' part of the define is historical */
include/uapi/linux/v4l2-subdev.h+12−3
@@ -116,13 +116,15 @@ struct v4l2_subdev_frame_size_enum { · 115 unmodified lines
116116 * @pad: pad number, as reported by the media API
117117 * @interval: frame interval in seconds
118118 * @stream: stream number, defined in subdev routing
119+ * @which: interval type (from enum v4l2_subdev_format_whence)
119120 * @reserved: drivers and applications must zero this array
120121 */
121122 struct v4l2_subdev_frame_interval {
122123 __u32 pad;
123124 struct v4l2_fract interval;
124125 __u32 stream;
125− __u32 reserved[8];
126+ __u32 which;
127+ __u32 reserved[7];
126128 };
127129
128130 /**
@@ -133,7 +135,7 @@ struct v4l2_subdev_frame_interval { · 4 unmodified lines
133135 * @width: frame width in pixels
134136 * @height: frame height in pixels
135137 * @interval: frame interval in seconds
136− * @which: format type (from enum v4l2_subdev_format_whence)
138+ * @which: interval type (from enum v4l2_subdev_format_whence)
137139 * @stream: stream number, defined in subdev routing
138140 * @reserved: drivers and applications must zero this array
139141 */
@@ -239,7 +241,14 @@ struct v4l2_subdev_routing { · 99 unmodified lines
239241 * set (which is the default), the 'stream' fields will be forced to 0 by the
240242 * kernel.
241243 */
242− #define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1U << 0)
244+#define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0)
245+
246+/*
247+ * The client is aware of the struct v4l2_subdev_frame_interval which field. If
248+ * this is not set (which is the default), the which field is forced to
249+ * V4L2_SUBDEV_FORMAT_ACTIVE by the kernel.
250+ */
251+#define V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH (1ULL << 1)
243252
244253 /**
245254 * struct v4l2_subdev_client_capability - Capabilities of the client accessing
include/uapi/linux/vfio.h+1−0
@@ -1219,6 +1219,7 @@ enum vfio_device_mig_state { · 1218 unmodified lines
12191219 VFIO_DEVICE_STATE_RUNNING_P2P = 5,
12201220 VFIO_DEVICE_STATE_PRE_COPY = 6,
12211221 VFIO_DEVICE_STATE_PRE_COPY_P2P = 7,
1222+ VFIO_DEVICE_STATE_NR,
12221223 };
12231224
12241225 /**
include/uapi/linux/videodev2.h+9−2
@@ -1035,6 +1035,7 @@ struct v4l2_requestbuffers { · 1034 unmodified lines
10351035 #define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
10361036 #define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
10371037 #define V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS (1 << 6)
1038+#define V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS (1 << 7)
10381039
10391040 /**
10401041 * struct v4l2_plane - plane info for multi-planar buffers
@@ -1816,7 +1817,7 @@ struct v4l2_ext_control { · 775 unmodified lines
18161817 __s64 __user *p_s64;
18171818 struct v4l2_area __user *p_area;
18181819 struct v4l2_ctrl_h264_sps __user *p_h264_sps;
1819− struct v4l2_ctrl_h264_pps *p_h264_pps;
1820+ struct v4l2_ctrl_h264_pps __user *p_h264_pps;
18201821 struct v4l2_ctrl_h264_scaling_matrix __user *p_h264_scaling_matrix;
18211822 struct v4l2_ctrl_h264_pred_weights __user *p_h264_pred_weights;
18221823 struct v4l2_ctrl_h264_slice_params __user *p_h264_slice_params;
@@ -1837,6 +1838,8 @@ struct v4l2_ext_control { · 14 unmodified lines
18371838 struct v4l2_ctrl_av1_tile_group_entry __user *p_av1_tile_group_entry;
18381839 struct v4l2_ctrl_av1_frame __user *p_av1_frame;
18391840 struct v4l2_ctrl_av1_film_grain __user *p_av1_film_grain;
1841+ struct v4l2_ctrl_hdr10_cll_info __user *p_hdr10_cll_info;
1842+ struct v4l2_ctrl_hdr10_mastering_display __user *p_hdr10_mastering_display;
18401843 void __user *ptr;
18411844 };
18421845 } __attribute__ ((packed));
@@ -2605,6 +2608,9 @@ struct v4l2_dbg_chip_info { · 762 unmodified lines
26052608 * @flags: additional buffer management attributes (ignored unless the
26062609 * queue has V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS capability
26072610 * and configured for MMAP streaming I/O).
2611+ * @max_num_buffers: if V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS capability flag is set
2612+ * this field indicate the maximum possible number of buffers
2613+ * for this queue.
26082614 * @reserved: future extensions
26092615 */
26102616 struct v4l2_create_buffers {
@@ -2614,7 +2620,8 @@ struct v4l2_create_buffers { · 3 unmodified lines
26142620 struct v4l2_format format;
26152621 __u32 capabilities;
26162622 __u32 flags;
2617− __u32 reserved[6];
2623+ __u32 max_num_buffers;
2624+ __u32 reserved[5];
26182625 };
26192626
26202627 /*
include/uapi/linux/virtio_config.h+7−1
@@ -52,7 +52,7 @@ · 51 unmodified lines
5252 * rest are per-device feature bits.
5353 */
5454 #define VIRTIO_TRANSPORT_F_START 28
55−#define VIRTIO_TRANSPORT_F_END 41
55+#define VIRTIO_TRANSPORT_F_END 42
5656
5757 #ifndef VIRTIO_CONFIG_NO_LEGACY
5858 /* Do we get callbacks when the ring is completely used, even if we've
@@ -114,4 +114,10 @@ · 55 unmodified lines
114114 * This feature indicates that the driver can reset a queue individually.
115115 */
116116 #define VIRTIO_F_RING_RESET 40
117+
118+/*
119+ * This feature indicates that the device support administration virtqueues.
120+ */
121+#define VIRTIO_F_ADMIN_VQ 41
122+
117123 #endif /* _UAPI_LINUX_VIRTIO_CONFIG_H */
include/uapi/linux/virtio_pci.h+68−0
@@ -175,6 +175,9 @@ struct virtio_pci_modern_common_cfg { · 174 unmodified lines
175175
176176 __le16 queue_notify_data; /* read-write */
177177 __le16 queue_reset; /* read-write */
178+
179+ __le16 admin_queue_index; /* read-only */
180+ __le16 admin_queue_num; /* read-only */
178181 };
179182
180183 /* Fields in VIRTIO_PCI_CAP_PCI_CFG: */
@@ -215,7 +218,72 @@ struct virtio_pci_cfg_cap { · 34 unmodified lines
215218 #define VIRTIO_PCI_COMMON_Q_USEDHI 52
216219 #define VIRTIO_PCI_COMMON_Q_NDATA 56
217220 #define VIRTIO_PCI_COMMON_Q_RESET 58
221+#define VIRTIO_PCI_COMMON_ADM_Q_IDX 60
222+#define VIRTIO_PCI_COMMON_ADM_Q_NUM 62
218223
219224 #endif /* VIRTIO_PCI_NO_MODERN */
220225
226+/* Admin command status. */
227+#define VIRTIO_ADMIN_STATUS_OK 0
228+
229+/* Admin command opcode. */
230+#define VIRTIO_ADMIN_CMD_LIST_QUERY 0x0
231+#define VIRTIO_ADMIN_CMD_LIST_USE 0x1
232+
233+/* Admin command group type. */
234+#define VIRTIO_ADMIN_GROUP_TYPE_SRIOV 0x1
235+
236+/* Transitional device admin command. */
237+#define VIRTIO_ADMIN_CMD_LEGACY_COMMON_CFG_WRITE 0x2
238+#define VIRTIO_ADMIN_CMD_LEGACY_COMMON_CFG_READ 0x3
239+#define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_WRITE 0x4
240+#define VIRTIO_ADMIN_CMD_LEGACY_DEV_CFG_READ 0x5
241+#define VIRTIO_ADMIN_CMD_LEGACY_NOTIFY_INFO 0x6
242+
243+struct __packed virtio_admin_cmd_hdr {
244+ __le16 opcode;
245+ /*
246+ * 1 - SR-IOV
247+ * 2-65535 - reserved
248+ */
249+ __le16 group_type;
250+ /* Unused, reserved for future extensions. */
251+ __u8 reserved1[12];
252+ __le64 group_member_id;
253+};
254+
255+struct __packed virtio_admin_cmd_status {
256+ __le16 status;
257+ __le16 status_qualifier;
258+ /* Unused, reserved for future extensions. */
259+ __u8 reserved2[4];
260+};
261+
262+struct __packed virtio_admin_cmd_legacy_wr_data {
263+ __u8 offset; /* Starting offset of the register(s) to write. */
264+ __u8 reserved[7];
265+ __u8 registers[];
266+};
267+
268+struct __packed virtio_admin_cmd_legacy_rd_data {
269+ __u8 offset; /* Starting offset of the register(s) to read. */
270+};
271+
272+#define VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_END 0
273+#define VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_OWNER_DEV 0x1
274+#define VIRTIO_ADMIN_CMD_NOTIFY_INFO_FLAGS_OWNER_MEM 0x2
275+
276+#define VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO 4
277+
278+struct __packed virtio_admin_cmd_notify_info_data {
279+ __u8 flags; /* 0 = end of list, 1 = owner device, 2 = member device */
280+ __u8 bar; /* BAR of the member or the owner device */
281+ __u8 padding[6];
282+ __le64 offset; /* Offset within bar. */
283+};
284+
285+struct virtio_admin_cmd_notify_info_result {
286+ struct virtio_admin_cmd_notify_info_data entries[VIRTIO_ADMIN_CMD_MAX_NOTIFY_INFO];
287+};
288+
221289 #endif
include/uapi/linux/virtio_pmem.h+7−0
@@ -14,6 +14,13 @@ · 13 unmodified lines
1414 #include <linux/virtio_ids.h>
1515 #include <linux/virtio_config.h>
1616
17+/* Feature bits */
18+/* guest physical address range will be indicated as shared memory region 0 */
19+#define VIRTIO_PMEM_F_SHMEM_REGION 0
20+
21+/* shmid of the shared memory region corresponding to the pmem */
22+#define VIRTIO_PMEM_SHMEM_REGION_ID 0
23+
1724 struct virtio_pmem_config {
1825 __le64 start;
1926 __le64 size;
include/uapi/rdma/bnxt_re-abi.h+41−0
@@ -54,6 +54,8 @@ enum { · 53 unmodified lines
5454 BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
5555 BNXT_RE_UCNTX_CMASK_WC_DPI_ENABLED = 0x04ULL,
5656 BNXT_RE_UCNTX_CMASK_DBR_PACING_ENABLED = 0x08ULL,
57+ BNXT_RE_UCNTX_CMASK_POW2_DISABLED = 0x10ULL,
58+ BNXT_RE_COMP_MASK_UCNTX_HW_RETX_ENABLED = 0x40,
5759 };
5860
5961 enum bnxt_re_wqe_mode {
@@ -62,6 +64,14 @@ enum bnxt_re_wqe_mode { · 2 unmodified lines
6264 BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
6365 };
6466
67+enum {
68+ BNXT_RE_COMP_MASK_REQ_UCNTX_POW2_SUPPORT = 0x01,
69+};
70+
71+struct bnxt_re_uctx_req {
72+ __aligned_u64 comp_mask;
73+};
74+
6575 struct bnxt_re_uctx_resp {
6676 __u32 dev_id;
6777 __u32 max_qp;
@@ -92,11 +102,16 @@ struct bnxt_re_cq_req { · 24 unmodified lines
92102 __aligned_u64 cq_handle;
93103 };
94104
105+enum bnxt_re_cq_mask {
106+ BNXT_RE_CQ_TOGGLE_PAGE_SUPPORT = 0x1,
107+};
108+
95109 struct bnxt_re_cq_resp {
96110 __u32 cqid;
97111 __u32 tail;
98112 __u32 phase;
99113 __u32 rsvd;
114+ __aligned_u64 comp_mask;
100115 };
101116
102117 struct bnxt_re_resize_cq_req {
@@ -133,6 +148,7 @@ enum bnxt_re_shpg_offt { · 30 unmodified lines
133148 enum bnxt_re_objects {
134149 BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT),
135150 BNXT_RE_OBJECT_NOTIFY_DRV,
151+ BNXT_RE_OBJECT_GET_TOGGLE_MEM,
136152 };
137153
138154 enum bnxt_re_alloc_page_type {
@@ -161,4 +177,29 @@ enum bnxt_re_alloc_page_methods { · 22 unmodified lines
161177 enum bnxt_re_notify_drv_methods {
162178 BNXT_RE_METHOD_NOTIFY_DRV = (1U << UVERBS_ID_NS_SHIFT),
163179 };
180+
181+/* Toggle mem */
182+
183+enum bnxt_re_get_toggle_mem_type {
184+ BNXT_RE_CQ_TOGGLE_MEM = 0,
185+ BNXT_RE_SRQ_TOGGLE_MEM,
186+};
187+
188+enum bnxt_re_var_toggle_mem_attrs {
189+ BNXT_RE_TOGGLE_MEM_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
190+ BNXT_RE_TOGGLE_MEM_TYPE,
191+ BNXT_RE_TOGGLE_MEM_RES_ID,
192+ BNXT_RE_TOGGLE_MEM_MMAP_PAGE,
193+ BNXT_RE_TOGGLE_MEM_MMAP_OFFSET,
194+ BNXT_RE_TOGGLE_MEM_MMAP_LENGTH,
195+};
196+
197+enum bnxt_re_toggle_mem_attrs {
198+ BNXT_RE_RELEASE_TOGGLE_MEM_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
199+};
200+
201+enum bnxt_re_toggle_mem_methods {
202+ BNXT_RE_METHOD_GET_TOGGLE_MEM = (1U << UVERBS_ID_NS_SHIFT),
203+ BNXT_RE_METHOD_RELEASE_TOGGLE_MEM,
204+};
164205 #endif /* __BNXT_RE_UVERBS_ABI_H__*/
include/uapi/rdma/efa-abi.h+20−1
@@ -1,12 +1,13 @@
11 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
22 /*
3− * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All rights reserved.
3+ * Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All rights reserved.
44 */
55
66 #ifndef EFA_ABI_USER_H
77 #define EFA_ABI_USER_H
88
99 #include <linux/types.h>
10+#include <rdma/ib_user_ioctl_cmds.h>
1011
1112 /*
1213 * Increment this value if any changes that break userspace ABI
@@ -134,4 +135,22 @@ struct efa_ibv_ex_query_device_resp { · 121 unmodified lines
134135 __u32 device_caps;
135136 };
136137
138+enum {
139+ EFA_QUERY_MR_VALIDITY_RECV_IC_ID = 1 << 0,
140+ EFA_QUERY_MR_VALIDITY_RDMA_READ_IC_ID = 1 << 1,
141+ EFA_QUERY_MR_VALIDITY_RDMA_RECV_IC_ID = 1 << 2,
142+};
143+
144+enum efa_query_mr_attrs {
145+ EFA_IB_ATTR_QUERY_MR_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
146+ EFA_IB_ATTR_QUERY_MR_RESP_IC_ID_VALIDITY,
147+ EFA_IB_ATTR_QUERY_MR_RESP_RECV_IC_ID,
148+ EFA_IB_ATTR_QUERY_MR_RESP_RDMA_READ_IC_ID,
149+ EFA_IB_ATTR_QUERY_MR_RESP_RDMA_RECV_IC_ID,
150+};
151+
152+enum efa_mr_methods {
153+ EFA_IB_METHOD_MR_QUERY = (1U << UVERBS_ID_NS_SHIFT),
154+};
155+
137156 #endif /* EFA_ABI_USER_H */
include/uapi/rdma/hns-abi.h+5−0
@@ -125,4 +125,9 @@ struct hns_roce_ib_alloc_pd_resp { · 124 unmodified lines
125125 __u32 pdn;
126126 };
127127
128+struct hns_roce_ib_create_ah_resp {
129+ __u8 dmac[6];
130+ __u8 reserved[2];
131+};
132+
128133 #endif /* HNS_ABI_USER_H */
include/uapi/rdma/mlx5-abi.h+2−0
@@ -37,6 +37,7 @@ · 36 unmodified lines
3737 #include <linux/types.h>
3838 #include <linux/if_ether.h> /* For ETH_ALEN. */
3939 #include <rdma/ib_user_ioctl_verbs.h>
40+#include <rdma/mlx5_user_ioctl_verbs.h>
4041
4142 enum {
4243 MLX5_QP_FLAG_SIGNATURE = 1 << 0,
@@ -275,6 +276,7 @@ struct mlx5_ib_query_device_resp { · 232 unmodified lines
275276 __u32 tunnel_offloads_caps; /* enum mlx5_ib_tunnel_offloads */
276277 struct mlx5_ib_dci_streams_caps dci_streams_caps;
277278 __u16 reserved;
279+ struct mlx5_ib_uapi_reg reg_c0;
278280 };
279281
280282 enum mlx5_ib_create_cq_flags {
include/uapi/rdma/mlx5_user_ioctl_verbs.h+1−0
@@ -64,6 +64,7 @@ enum mlx5_ib_uapi_dm_type { · 63 unmodified lines
6464 MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM,
6565 MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM,
6666 MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_PATTERN_SW_ICM,
67+ MLX5_IB_UAPI_DM_TYPE_ENCAP_SW_ICM,
6768 };
6869
6970 enum mlx5_ib_uapi_devx_create_event_channel_flags {
include/uapi/regulator/regulator.h+90−0
@@ -0,0 +1,90 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Regulator uapi header
4+ *
5+ * Author: Naresh Solanki <Naresh.Solanki@9elements.com>
6+ */
7+
8+#ifndef _UAPI_REGULATOR_H
9+#define _UAPI_REGULATOR_H
10+
11+#ifdef __KERNEL__
12+#include <linux/types.h>
13+#else
14+#include <stdint.h>
15+#endif
16+
17+/*
18+ * Regulator notifier events.
19+ *
20+ * UNDER_VOLTAGE Regulator output is under voltage.
21+ * OVER_CURRENT Regulator output current is too high.
22+ * REGULATION_OUT Regulator output is out of regulation.
23+ * FAIL Regulator output has failed.
24+ * OVER_TEMP Regulator over temp.
25+ * FORCE_DISABLE Regulator forcibly shut down by software.
26+ * VOLTAGE_CHANGE Regulator voltage changed.
27+ * Data passed is old voltage cast to (void *).
28+ * DISABLE Regulator was disabled.
29+ * PRE_VOLTAGE_CHANGE Regulator is about to have voltage changed.
30+ * Data passed is "struct pre_voltage_change_data"
31+ * ABORT_VOLTAGE_CHANGE Regulator voltage change failed for some reason.
32+ * Data passed is old voltage cast to (void *).
33+ * PRE_DISABLE Regulator is about to be disabled
34+ * ABORT_DISABLE Regulator disable failed for some reason
35+ *
36+ * NOTE: These events can be OR'ed together when passed into handler.
37+ */
38+
39+#define REGULATOR_EVENT_UNDER_VOLTAGE 0x01
40+#define REGULATOR_EVENT_OVER_CURRENT 0x02
41+#define REGULATOR_EVENT_REGULATION_OUT 0x04
42+#define REGULATOR_EVENT_FAIL 0x08
43+#define REGULATOR_EVENT_OVER_TEMP 0x10
44+#define REGULATOR_EVENT_FORCE_DISABLE 0x20
45+#define REGULATOR_EVENT_VOLTAGE_CHANGE 0x40
46+#define REGULATOR_EVENT_DISABLE 0x80
47+#define REGULATOR_EVENT_PRE_VOLTAGE_CHANGE 0x100
48+#define REGULATOR_EVENT_ABORT_VOLTAGE_CHANGE 0x200
49+#define REGULATOR_EVENT_PRE_DISABLE 0x400
50+#define REGULATOR_EVENT_ABORT_DISABLE 0x800
51+#define REGULATOR_EVENT_ENABLE 0x1000
52+/*
53+ * Following notifications should be emitted only if detected condition
54+ * is such that the HW is likely to still be working but consumers should
55+ * take a recovery action to prevent problems escalating into errors.
56+ */
57+#define REGULATOR_EVENT_UNDER_VOLTAGE_WARN 0x2000
58+#define REGULATOR_EVENT_OVER_CURRENT_WARN 0x4000
59+#define REGULATOR_EVENT_OVER_VOLTAGE_WARN 0x8000
60+#define REGULATOR_EVENT_OVER_TEMP_WARN 0x10000
61+#define REGULATOR_EVENT_WARN_MASK 0x1E000
62+
63+struct reg_genl_event {
64+ char reg_name[32];
65+ uint64_t event;
66+};
67+
68+/* attributes of reg_genl_family */
69+enum {
70+ REG_GENL_ATTR_UNSPEC,
71+ REG_GENL_ATTR_EVENT, /* reg event info needed by user space */
72+ __REG_GENL_ATTR_MAX,
73+};
74+
75+#define REG_GENL_ATTR_MAX (__REG_GENL_ATTR_MAX - 1)
76+
77+/* commands supported by the reg_genl_family */
78+enum {
79+ REG_GENL_CMD_UNSPEC,
80+ REG_GENL_CMD_EVENT, /* kernel->user notifications for reg events */
81+ __REG_GENL_CMD_MAX,
82+};
83+
84+#define REG_GENL_CMD_MAX (__REG_GENL_CMD_MAX - 1)
85+
86+#define REG_GENL_FAMILY_NAME "reg_event"
87+#define REG_GENL_VERSION 0x01
88+#define REG_GENL_MCAST_GROUP_NAME "reg_mc_group"
89+
90+#endif /* _UAPI_REGULATOR_H */
include/uapi/scsi/scsi_bsg_mpi3mr.h+2−0
@@ -491,6 +491,8 @@ struct mpi3_nvme_encapsulated_error_reply { · 490 unmodified lines
491491 #define MPI3MR_NVME_DATA_FORMAT_PRP 0
492492 #define MPI3MR_NVME_DATA_FORMAT_SGL1 1
493493 #define MPI3MR_NVME_DATA_FORMAT_SGL2 2
494+#define MPI3MR_NVMESGL_DATA_SEGMENT 0x00
495+#define MPI3MR_NVMESGL_LAST_SEGMENT 0x03
494496
495497 /* MPI3: task management related definitions */
496498 struct mpi3_scsi_task_mgmt_request {
include/uapi/sound/asound.h+5−2
@@ -142,7 +142,7 @@ struct snd_hwdep_dsp_image { · 141 unmodified lines
142142 * *
143143 *****************************************************************************/
144144
145−#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 15)
145+#define SNDRV_PCM_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 16)
146146
147147 typedef unsigned long snd_pcm_uframes_t;
148148 typedef signed long snd_pcm_sframes_t;
@@ -267,7 +267,10 @@ typedef int __bitwise snd_pcm_format_t; · 118 unmodified lines
267267
268268 typedef int __bitwise snd_pcm_subformat_t;
269269 #define SNDRV_PCM_SUBFORMAT_STD ((__force snd_pcm_subformat_t) 0)
270−#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_STD
270+#define SNDRV_PCM_SUBFORMAT_MSBITS_MAX ((__force snd_pcm_subformat_t) 1)
271+#define SNDRV_PCM_SUBFORMAT_MSBITS_20 ((__force snd_pcm_subformat_t) 2)
272+#define SNDRV_PCM_SUBFORMAT_MSBITS_24 ((__force snd_pcm_subformat_t) 3)
273+#define SNDRV_PCM_SUBFORMAT_LAST SNDRV_PCM_SUBFORMAT_MSBITS_24
271274
272275 #define SNDRV_PCM_INFO_MMAP 0x00000001 /* hardware supports mmap */
273276 #define SNDRV_PCM_INFO_MMAP_VALID 0x00000002 /* period data are valid during transfer */
include/uapi/sound/scarlett2.h+54−0
@@ -0,0 +1,54 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Focusrite Scarlett 2 Protocol Driver for ALSA
4+ * (including Scarlett 2nd Gen, 3rd Gen, 4th Gen, Clarett USB, and
5+ * Clarett+ series products)
6+ *
7+ * Copyright (c) 2023 by Geoffrey D. Bennett <g at b4.vu>
8+ */
9+#ifndef __UAPI_SOUND_SCARLETT2_H
10+#define __UAPI_SOUND_SCARLETT2_H
11+
12+#include <linux/types.h>
13+#include <linux/ioctl.h>
14+
15+#define SCARLETT2_HWDEP_MAJOR 1
16+#define SCARLETT2_HWDEP_MINOR 0
17+#define SCARLETT2_HWDEP_SUBMINOR 0
18+
19+#define SCARLETT2_HWDEP_VERSION \
20+ ((SCARLETT2_HWDEP_MAJOR << 16) | \
21+ (SCARLETT2_HWDEP_MINOR << 8) | \
22+ SCARLETT2_HWDEP_SUBMINOR)
23+
24+#define SCARLETT2_HWDEP_VERSION_MAJOR(v) (((v) >> 16) & 0xFF)
25+#define SCARLETT2_HWDEP_VERSION_MINOR(v) (((v) >> 8) & 0xFF)
26+#define SCARLETT2_HWDEP_VERSION_SUBMINOR(v) ((v) & 0xFF)
27+
28+/* Get protocol version */
29+#define SCARLETT2_IOCTL_PVERSION _IOR('S', 0x60, int)
30+
31+/* Reboot */
32+#define SCARLETT2_IOCTL_REBOOT _IO('S', 0x61)
33+
34+/* Select flash segment */
35+#define SCARLETT2_SEGMENT_ID_SETTINGS 0
36+#define SCARLETT2_SEGMENT_ID_FIRMWARE 1
37+#define SCARLETT2_SEGMENT_ID_COUNT 2
38+
39+#define SCARLETT2_IOCTL_SELECT_FLASH_SEGMENT _IOW('S', 0x62, int)
40+
41+/* Erase selected flash segment */
42+#define SCARLETT2_IOCTL_ERASE_FLASH_SEGMENT _IO('S', 0x63)
43+
44+/* Get selected flash segment erase progress
45+ * 1 through to num_blocks, or 255 for complete
46+ */
47+struct scarlett2_flash_segment_erase_progress {
48+ unsigned char progress;
49+ unsigned char num_blocks;
50+};
51+#define SCARLETT2_IOCTL_GET_ERASE_PROGRESS \
52+ _IOR('S', 0x64, struct scarlett2_flash_segment_erase_progress)
53+
54+#endif /* __UAPI_SOUND_SCARLETT2_H */
include/uapi/sound/sof/tokens.h+5−0
@@ -35,6 +35,7 @@ · 34 unmodified lines
3535 /* buffers */
3636 #define SOF_TKN_BUF_SIZE 100
3737 #define SOF_TKN_BUF_CAPS 101
38+#define SOF_TKN_BUF_FLAGS 102
3839
3940 /* DAI */
4041 /* Token retired with ABI 3.2, do not use for new capabilities
@@ -213,4 +214,8 @@ · 172 unmodified lines
213214 #define SOF_TKN_AMD_ACPI2S_CH 1701
214215 #define SOF_TKN_AMD_ACPI2S_TDM_MODE 1702
215216
217+/* MICFIL PDM */
218+#define SOF_TKN_IMX_MICFIL_RATE 2000
219+#define SOF_TKN_IMX_MICFIL_CH 2001
220+
216221 #endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t