History

Merge drm/drm-next into drm-misc-next

Now that 4.19-rc1 is cut, backmerge it into -misc-next.

Sean Paul committed 8 years ago

Commit bc537a92 parents a5ec833 5b394b210954 files · +498604 −203985Browse files

Showing the changes to include/uapi (89 of 10954 files). Show all

Unified · Split

89 files
  1. include/uapi/asm-generic/socket.h +3 −0
  2. include/uapi/asm-generic/unistd.h +3 −1
  3. include/uapi/drm/amdgpu_drm.h +1 −0
  4. include/uapi/drm/drm_fourcc.h +13 −0
  5. include/uapi/drm/vmwgfx_drm.h +128 −38
  6. include/uapi/linux/aio_abi.h +2 −10
  7. include/uapi/linux/audit.h +3 −1
  8. include/uapi/linux/auto_fs.h +5 −3
  9. include/uapi/linux/bcache.h +7 −5
  10. include/uapi/linux/blkzoned.h +1 −1
  11. include/uapi/linux/bpf.h +121 −9
  12. include/uapi/linux/btf.h +1 −1
  13. include/uapi/linux/can.h +1 −1
  14. include/uapi/linux/cec.h +2 −0
  15. include/uapi/linux/dcbnl.h +2 −1
  16. include/uapi/linux/devlink.h +42 −0
  17. include/uapi/linux/dvb/audio.h +0 −37
  18. include/uapi/linux/dvb/video.h +0 −58
  19. include/uapi/linux/elf.h +2 −0
  20. include/uapi/linux/errqueue.h +4 −0
  21. include/uapi/linux/ethtool.h +7 −4
  22. include/uapi/linux/eventpoll.h +4 −4
  23. include/uapi/linux/fpga-dfl.h +179 −0
  24. include/uapi/linux/fsi.h +58 −0
  25. include/uapi/linux/if_link.h +17 −0
  26. include/uapi/linux/iio/types.h +3 −0
  27. include/uapi/linux/ila.h +1 −0
  28. include/uapi/linux/inotify.h +1 −0
  29. include/uapi/linux/input.h +5 −4
  30. include/uapi/linux/ip.h +1 −0
  31. include/uapi/linux/joystick.h +0 −4
  32. include/uapi/linux/keyboard.h +22 −1
  33. include/uapi/linux/kfd_ioctl.h +30 −3
  34. include/uapi/linux/kvm.h +6 −0
  35. include/uapi/linux/kvm_para.h +2 −0
  36. include/uapi/linux/l2tp.h +8 −7
  37. include/uapi/linux/media-bus-format.h +2 −1
  38. include/uapi/linux/media.h +35 −11
  39. include/uapi/linux/mii.h +1 −0
  40. include/uapi/linux/mroute.h +2 −0
  41. include/uapi/linux/net_tstamp.h +18 −0
  42. include/uapi/linux/netconf.h +1 −0
  43. include/uapi/linux/netfilter/nf_tables.h +122 −2
  44. include/uapi/linux/netfilter/nfnetlink_osf.h +34 −0
  45. include/uapi/linux/netfilter/xt_osf.h +5 −19
  46. include/uapi/linux/netfilter_bridge.h +11 −0
  47. include/uapi/linux/nl80211.h +101 −1
  48. include/uapi/linux/openvswitch.h +3 −0
  49. include/uapi/linux/pci_regs.h +3 −1
  50. include/uapi/linux/pcitest.h +3 −0
  51. include/uapi/linux/perf_event.h +2 −0
  52. include/uapi/linux/pkt_cls.h +39 −2
  53. include/uapi/linux/pkt_sched.h +150 −0
  54. include/uapi/linux/pmu.h +2 −2
  55. include/uapi/linux/ppp-ioctl.h +1 −1
  56. include/uapi/linux/rds.h +67 −2
  57. include/uapi/linux/rseq.h +58 −44
  58. include/uapi/linux/rtnetlink.h +7 −0
  59. include/uapi/linux/sctp.h +5 −0
  60. include/uapi/linux/smc_diag.h +24 −1
  61. include/uapi/linux/snmp.h +3 −0
  62. include/uapi/linux/sysctl.h +2 −1
  63. include/uapi/linux/tc_act/tc_pedit.h +7 −2
  64. include/uapi/linux/tc_act/tc_skbedit.h +2 −0
  65. include/uapi/linux/tc_act/tc_tunnel_key.h +28 −0
  66. include/uapi/linux/tcp.h +13 −1
  67. include/uapi/linux/time.h +7 −0
  68. include/uapi/linux/tipc_netlink.h +14 −0
  69. include/uapi/linux/types_32_64.h +0 −50
  70. include/uapi/linux/usb/audio.h +40 −9
  71. include/uapi/linux/usb/g_uvc.h +39 −0
  72. include/uapi/linux/usb/tmc.h +13 −0
  73. include/uapi/linux/uvcvideo.h +2 −0
  74. include/uapi/linux/v4l2-controls.h +18 −2
  75. include/uapi/linux/v4l2-subdev.h +4 −0
  76. include/uapi/linux/vhost.h +18 −0
  77. include/uapi/linux/videodev2.h +7 −1
  78. include/uapi/linux/xfrm.h +4 −1
  79. include/uapi/mtd/ubi-user.h +16 −2
  80. include/uapi/rdma/cxgb4-abi.h +30 −2
  81. include/uapi/rdma/hns-abi.h +1 −0
  82. include/uapi/rdma/ib_user_ioctl_cmds.h +6 −1
  83. include/uapi/rdma/ib_user_ioctl_verbs.h +58 −0
  84. include/uapi/rdma/ib_user_verbs.h +3 −2
  85. include/uapi/rdma/mlx5-abi.h +5 −1
  86. include/uapi/rdma/mlx5_user_ioctl_cmds.h +121 −0
  87. include/uapi/rdma/qedr-abi.h +17 −0
  88. include/uapi/rdma/rdma_user_ioctl_cmds.h +6 −1
  89. include/uapi/xen/gntdev.h +106 −0
include/uapi/asm-generic/socket.h+3−0
@@ -107,4 +107,7 @@ · 106 unmodified lines
107107
108108 #define SO_ZEROCOPY 60
109109
110+#define SO_TXTIME 61
111+#define SCM_TXTIME SO_TXTIME
112+
110113 #endif /* __ASM_GENERIC_SOCKET_H */
include/uapi/asm-generic/unistd.h+3−1
@@ -734,9 +734,11 @@ __SYSCALL(__NR_pkey_free, sys_pkey_free) · 733 unmodified lines
734734 __SYSCALL(__NR_statx, sys_statx)
735735 #define __NR_io_pgetevents 292
736736 __SC_COMP(__NR_io_pgetevents, sys_io_pgetevents, compat_sys_io_pgetevents)
737+#define __NR_rseq 293
738+__SYSCALL(__NR_rseq, sys_rseq)
737739
738740 #undef __NR_syscalls
739−#define __NR_syscalls 293
741+#define __NR_syscalls 294
740742
741743 /*
742744 * 32 bit systems traditionally used different
include/uapi/drm/amdgpu_drm.h+1−0
@@ -516,6 +516,7 @@ struct drm_amdgpu_gem_va { · 515 unmodified lines
516516 #define AMDGPU_CHUNK_ID_DEPENDENCIES 0x03
517517 #define AMDGPU_CHUNK_ID_SYNCOBJ_IN 0x04
518518 #define AMDGPU_CHUNK_ID_SYNCOBJ_OUT 0x05
519+#define AMDGPU_CHUNK_ID_BO_HANDLES 0x06
519520
520521 struct drm_amdgpu_cs_chunk {
521522 __u32 chunk_id;
include/uapi/drm/drm_fourcc.h+13−0
@@ -335,6 +335,19 @@ extern "C" { · 334 unmodified lines
335335 */
336336 #define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE fourcc_mod_code(SAMSUNG, 1)
337337
338+/*
339+ * Qualcomm Compressed Format
340+ *
341+ * Refers to a compressed variant of the base format that is compressed.
342+ * Implementation may be platform and base-format specific.
343+ *
344+ * Each macrotile consists of m x n (mostly 4 x 4) tiles.
345+ * Pixel data pitch/stride is aligned with macrotile width.
346+ * Pixel data height is aligned with macrotile height.
347+ * Entire pixel data buffer is aligned with 4k(bytes).
348+ */
349+#define DRM_FORMAT_MOD_QCOM_COMPRESSED fourcc_mod_code(QCOM, 1)
350+
338351 /* Vivante framebuffer modifiers */
339352
340353 /*
include/uapi/drm/vmwgfx_drm.h+128−38
@@ -40,6 +40,7 @@ extern "C" { · 39 unmodified lines
4040
4141 #define DRM_VMW_GET_PARAM 0
4242 #define DRM_VMW_ALLOC_DMABUF 1
43+#define DRM_VMW_ALLOC_BO 1
4344 #define DRM_VMW_UNREF_DMABUF 2
4445 #define DRM_VMW_HANDLE_CLOSE 2
4546 #define DRM_VMW_CURSOR_BYPASS 3
@@ -68,6 +69,8 @@ extern "C" { · 22 unmodified lines
6869 #define DRM_VMW_GB_SURFACE_REF 24
6970 #define DRM_VMW_SYNCCPU 25
7071 #define DRM_VMW_CREATE_EXTENDED_CONTEXT 26
72+#define DRM_VMW_GB_SURFACE_CREATE_EXT 27
73+#define DRM_VMW_GB_SURFACE_REF_EXT 28
7174
7275 /*************************************************************************/
7376 /**
@@ -79,6 +82,9 @@ extern "C" { · 5 unmodified lines
7982 *
8083 * DRM_VMW_PARAM_OVERLAY_IOCTL:
8184 * Does the driver support the overlay ioctl.
85+ *
86+ * DRM_VMW_PARAM_SM4_1
87+ * SM4_1 support is enabled.
8288 */
8389
8490 #define DRM_VMW_PARAM_NUM_STREAMS 0
@@ -94,6 +100,8 @@ extern "C" { · 9 unmodified lines
94100 #define DRM_VMW_PARAM_MAX_MOB_SIZE 10
95101 #define DRM_VMW_PARAM_SCREEN_TARGET 11
96102 #define DRM_VMW_PARAM_DX 12
103+#define DRM_VMW_PARAM_HW_CAPS2 13
104+#define DRM_VMW_PARAM_SM4_1 14
97105
98106 /**
99107 * enum drm_vmw_handle_type - handle type for ref ioctls
@@ -356,9 +364,9 @@ struct drm_vmw_fence_rep { · 256 unmodified lines
356364
357365 /*************************************************************************/
358366 /**
359− * DRM_VMW_ALLOC_DMABUF
367+ * DRM_VMW_ALLOC_BO
360368 *
361− * Allocate a DMA buffer that is visible also to the host.
369+ * Allocate a buffer object that is visible also to the host.
362370 * NOTE: The buffer is
363371 * identified by a handle and an offset, which are private to the guest, but
364372 * useable in the command stream. The guest kernel may translate these
@@ -366,27 +374,28 @@ struct drm_vmw_fence_rep { · 1 unmodified line
366374 * be zero at all times, or it may disappear from the interface before it is
367375 * fixed.
368376 *
369− * The DMA buffer may stay user-space mapped in the guest at all times,
377+ * The buffer object may stay user-space mapped in the guest at all times,
370378 * and is thus suitable for sub-allocation.
371379 *
372− * DMA buffers are mapped using the mmap() syscall on the drm device.
380+ * Buffer objects are mapped using the mmap() syscall on the drm device.
373381 */
374382
375383 /**
376− * struct drm_vmw_alloc_dmabuf_req
384+ * struct drm_vmw_alloc_bo_req
377385 *
378386 * @size: Required minimum size of the buffer.
379387 *
380− * Input data to the DRM_VMW_ALLOC_DMABUF Ioctl.
388+ * Input data to the DRM_VMW_ALLOC_BO Ioctl.
381389 */
382390
383−struct drm_vmw_alloc_dmabuf_req {
391+struct drm_vmw_alloc_bo_req {
384392 __u32 size;
385393 __u32 pad64;
386394 };
395+#define drm_vmw_alloc_dmabuf_req drm_vmw_alloc_bo_req
387396
388397 /**
389− * struct drm_vmw_dmabuf_rep
398+ * struct drm_vmw_bo_rep
390399 *
391400 * @map_handle: Offset to use in the mmap() call used to map the buffer.
392401 * @handle: Handle unique to this buffer. Used for unreferencing.
@@ -395,50 +404,32 @@ struct drm_vmw_alloc_dmabuf_req { · 2 unmodified lines
395404 * @cur_gmr_offset: Offset to use in the command stream when this buffer is
396405 * referenced. See note above.
397406 *
398− * Output data from the DRM_VMW_ALLOC_DMABUF Ioctl.
407+ * Output data from the DRM_VMW_ALLOC_BO Ioctl.
399408 */
400409
401−struct drm_vmw_dmabuf_rep {
410+struct drm_vmw_bo_rep {
402411 __u64 map_handle;
403412 __u32 handle;
404413 __u32 cur_gmr_id;
405414 __u32 cur_gmr_offset;
406415 __u32 pad64;
407416 };
417+#define drm_vmw_dmabuf_rep drm_vmw_bo_rep
408418
409419 /**
410− * union drm_vmw_dmabuf_arg
420+ * union drm_vmw_alloc_bo_arg
411421 *
412422 * @req: Input data as described above.
413423 * @rep: Output data as described above.
414424 *
415− * Argument to the DRM_VMW_ALLOC_DMABUF Ioctl.
425+ * Argument to the DRM_VMW_ALLOC_BO Ioctl.
416426 */
417427
418−union drm_vmw_alloc_dmabuf_arg {
419− struct drm_vmw_alloc_dmabuf_req req;
420− struct drm_vmw_dmabuf_rep rep;
421−};
422−
423−/*************************************************************************/
424−/**
425− * DRM_VMW_UNREF_DMABUF - Free a DMA buffer.
426− *
427− */
428−
429−/**
430− * struct drm_vmw_unref_dmabuf_arg
431− *
432− * @handle: Handle indicating what buffer to free. Obtained from the
433− * DRM_VMW_ALLOC_DMABUF Ioctl.
434− *
435− * Argument to the DRM_VMW_UNREF_DMABUF Ioctl.
436− */
437−
438−struct drm_vmw_unref_dmabuf_arg {
439− __u32 handle;
440− __u32 pad64;
428+union drm_vmw_alloc_bo_arg {
429+ struct drm_vmw_alloc_bo_req req;
430+ struct drm_vmw_bo_rep rep;
441431 };
432+#define drm_vmw_alloc_dmabuf_arg drm_vmw_alloc_bo_arg
442433
443434 /*************************************************************************/
444435 /**
@@ -1103,9 +1094,8 @@ union drm_vmw_extended_context_arg { · 658 unmodified lines
11031094 * DRM_VMW_HANDLE_CLOSE - Close a user-space handle and release its
11041095 * underlying resource.
11051096 *
1106− * Note that this ioctl is overlaid on the DRM_VMW_UNREF_DMABUF Ioctl.
1107− * The ioctl arguments therefore need to be identical in layout.
1108− *
1097+ * Note that this ioctl is overlaid on the deprecated DRM_VMW_UNREF_DMABUF
1098+ * Ioctl.
11091099 */
11101100
11111101 /**
@@ -1119,7 +1109,107 @@ struct drm_vmw_handle_close_arg { · 7 unmodified lines
11191109 __u32 handle;
11201110 __u32 pad64;
11211111 };
1112+#define drm_vmw_unref_dmabuf_arg drm_vmw_handle_close_arg
1113+
1114+/*************************************************************************/
1115+/**
1116+ * DRM_VMW_GB_SURFACE_CREATE_EXT - Create a host guest-backed surface.
1117+ *
1118+ * Allocates a surface handle and queues a create surface command
1119+ * for the host on the first use of the surface. The surface ID can
1120+ * be used as the surface ID in commands referencing the surface.
1121+ *
1122+ * This new command extends DRM_VMW_GB_SURFACE_CREATE by adding version
1123+ * parameter and 64 bit svga flag.
1124+ */
1125+
1126+/**
1127+ * enum drm_vmw_surface_version
1128+ *
1129+ * @drm_vmw_surface_gb_v1: Corresponds to current gb surface format with
1130+ * svga3d surface flags split into 2, upper half and lower half.
1131+ */
1132+enum drm_vmw_surface_version {
1133+ drm_vmw_gb_surface_v1
1134+};
1135+
1136+/**
1137+ * struct drm_vmw_gb_surface_create_ext_req
1138+ *
1139+ * @base: Surface create parameters.
1140+ * @version: Version of surface create ioctl.
1141+ * @svga3d_flags_upper_32_bits: Upper 32 bits of svga3d flags.
1142+ * @multisample_pattern: Multisampling pattern when msaa is supported.
1143+ * @quality_level: Precision settings for each sample.
1144+ * @must_be_zero: Reserved for future usage.
1145+ *
1146+ * Input argument to the DRM_VMW_GB_SURFACE_CREATE_EXT Ioctl.
1147+ * Part of output argument for the DRM_VMW_GB_SURFACE_REF_EXT Ioctl.
1148+ */
1149+struct drm_vmw_gb_surface_create_ext_req {
1150+ struct drm_vmw_gb_surface_create_req base;
1151+ enum drm_vmw_surface_version version;
1152+ uint32_t svga3d_flags_upper_32_bits;
1153+ SVGA3dMSPattern multisample_pattern;
1154+ SVGA3dMSQualityLevel quality_level;
1155+ uint64_t must_be_zero;
1156+};
1157+
1158+/**
1159+ * union drm_vmw_gb_surface_create_ext_arg
1160+ *
1161+ * @req: Input argument as described above.
1162+ * @rep: Output argument as described above.
1163+ *
1164+ * Argument to the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
1165+ */
1166+union drm_vmw_gb_surface_create_ext_arg {
1167+ struct drm_vmw_gb_surface_create_rep rep;
1168+ struct drm_vmw_gb_surface_create_ext_req req;
1169+};
1170+
1171+/*************************************************************************/
1172+/**
1173+ * DRM_VMW_GB_SURFACE_REF_EXT - Reference a host surface.
1174+ *
1175+ * Puts a reference on a host surface with a given handle, as previously
1176+ * returned by the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
1177+ * A reference will make sure the surface isn't destroyed while we hold
1178+ * it and will allow the calling client to use the surface handle in
1179+ * the command stream.
1180+ *
1181+ * On successful return, the Ioctl returns the surface information given
1182+ * to and returned from the DRM_VMW_GB_SURFACE_CREATE_EXT ioctl.
1183+ */
11221184
1185+/**
1186+ * struct drm_vmw_gb_surface_ref_ext_rep
1187+ *
1188+ * @creq: The data used as input when the surface was created, as described
1189+ * above at "struct drm_vmw_gb_surface_create_ext_req"
1190+ * @crep: Additional data output when the surface was created, as described
1191+ * above at "struct drm_vmw_gb_surface_create_rep"
1192+ *
1193+ * Output Argument to the DRM_VMW_GB_SURFACE_REF_EXT ioctl.
1194+ */
1195+struct drm_vmw_gb_surface_ref_ext_rep {
1196+ struct drm_vmw_gb_surface_create_ext_req creq;
1197+ struct drm_vmw_gb_surface_create_rep crep;
1198+};
1199+
1200+/**
1201+ * union drm_vmw_gb_surface_reference_ext_arg
1202+ *
1203+ * @req: Input data as described above at "struct drm_vmw_surface_arg"
1204+ * @rep: Output data as described above at
1205+ * "struct drm_vmw_gb_surface_ref_ext_rep"
1206+ *
1207+ * Argument to the DRM_VMW_GB_SURFACE_REF Ioctl.
1208+ */
1209+union drm_vmw_gb_surface_reference_ext_arg {
1210+ struct drm_vmw_gb_surface_ref_ext_rep rep;
1211+ struct drm_vmw_surface_arg req;
1212+};
11231213
11241214 #if defined(__cplusplus)
11251215 }
include/uapi/linux/aio_abi.h+2−10
@@ -29,7 +29,6 @@ · 28 unmodified lines
2929
3030 #include <linux/types.h>
3131 #include <linux/fs.h>
32−#include <linux/signal.h>
3332 #include <asm/byteorder.h>
3433
3534 typedef __kernel_ulong_t aio_context_t;
@@ -39,10 +38,8 @@ enum { · 3 unmodified lines
3938 IOCB_CMD_PWRITE = 1,
4039 IOCB_CMD_FSYNC = 2,
4140 IOCB_CMD_FDSYNC = 3,
42− /* These two are experimental.
43− * IOCB_CMD_PREADX = 4,
44− * IOCB_CMD_POLL = 5,
45− */
41+ /* 4 was the experimental IOCB_CMD_PREADX */
42+ IOCB_CMD_POLL = 5,
4643 IOCB_CMD_NOOP = 6,
4744 IOCB_CMD_PREADV = 7,
4845 IOCB_CMD_PWRITEV = 8,
@@ -110,10 +107,5 @@ struct iocb { · 61 unmodified lines
110107 #undef IFBIG
111108 #undef IFLITTLE
112109
113−struct __aio_sigset {
114− const sigset_t __user *sigmask;
115− size_t sigsetsize;
116−};
117−
118110 #endif /* __LINUX__AIO_ABI_H */
119111
include/uapi/linux/audit.h+3−1
@@ -148,6 +148,7 @@ · 147 unmodified lines
148148 #define AUDIT_INTEGRITY_PCR 1804 /* PCR invalidation msgs */
149149 #define AUDIT_INTEGRITY_RULE 1805 /* policy rule */
150150 #define AUDIT_INTEGRITY_EVM_XATTR 1806 /* New EVM-covered xattr */
151+#define AUDIT_INTEGRITY_POLICY_RULE 1807 /* IMA policy rules */
151152
152153 #define AUDIT_KERNEL 2000 /* Asynchronous audit record. NOT A REQUEST. */
153154
@@ -157,7 +158,8 @@ · 3 unmodified lines
157158 #define AUDIT_FILTER_ENTRY 0x02 /* Apply rule at syscall entry */
158159 #define AUDIT_FILTER_WATCH 0x03 /* Apply rule to file system watches */
159160 #define AUDIT_FILTER_EXIT 0x04 /* Apply rule at syscall exit */
160−#define AUDIT_FILTER_TYPE 0x05 /* Apply rule at audit_log_start */
161+#define AUDIT_FILTER_EXCLUDE 0x05 /* Apply rule before record creation */
162+#define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE /* obsolete misleading naming */
161163 #define AUDIT_FILTER_FS 0x06 /* Apply rule at __audit_inode_child */
162164
163165 #define AUDIT_NR_FILTERS 7
include/uapi/linux/auto_fs.h+5−3
@@ -23,7 +23,7 @@ · 22 unmodified lines
2323 #define AUTOFS_MIN_PROTO_VERSION 3
2424 #define AUTOFS_MAX_PROTO_VERSION 5
2525
26−#define AUTOFS_PROTO_SUBVERSION 2
26+#define AUTOFS_PROTO_SUBVERSION 3
2727
2828 /*
2929 * The wait_queue_token (autofs_wqt_t) is part of a structure which is passed
@@ -90,8 +90,10 @@ enum { · 60 unmodified lines
9090 /* autofs version 4 and later definitions */
9191
9292 /* Mask for expire behaviour */
93−#define AUTOFS_EXP_IMMEDIATE 1
94−#define AUTOFS_EXP_LEAVES 2
93+#define AUTOFS_EXP_NORMAL 0x00
94+#define AUTOFS_EXP_IMMEDIATE 0x01
95+#define AUTOFS_EXP_LEAVES 0x02
96+#define AUTOFS_EXP_FORCED 0x04
9597
9698 #define AUTOFS_TYPE_ANY 0U
9799 #define AUTOFS_TYPE_INDIRECT 1U
include/uapi/linux/bcache.h+7−5
@@ -30,10 +30,10 @@ struct bkey { · 29 unmodified lines
3030 BITMASK(name, struct bkey, field, offset, size)
3131
3232 #define PTR_FIELD(name, offset, size) \
33−static inline __u64 name(const struct bkey *k, unsigned i) \
33+static inline __u64 name(const struct bkey *k, unsigned int i) \
3434 { return (k->ptr[i] >> offset) & ~(~0ULL << size); } \
3535 \
36−static inline void SET_##name(struct bkey *k, unsigned i, __u64 v) \
36+static inline void SET_##name(struct bkey *k, unsigned int i, __u64 v) \
3737 { \
3838 k->ptr[i] &= ~(~(~0ULL << size) << offset); \
3939 k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
@@ -117,12 +117,14 @@ static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src) · 77 unmodified lines
117117 static inline struct bkey *bkey_next(const struct bkey *k)
118118 {
119119 __u64 *d = (void *) k;
120+
120121 return (struct bkey *) (d + bkey_u64s(k));
121122 }
122123
123−static inline struct bkey *bkey_idx(const struct bkey *k, unsigned nr_keys)
124+static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys)
124125 {
125126 __u64 *d = (void *) k;
127+
126128 return (struct bkey *) (d + nr_keys);
127129 }
128130 /* Enough for a key with 6 pointers */
@@ -195,7 +197,7 @@ struct cache_sb { · 66 unmodified lines
195197 };
196198 };
197199
198− __u32 last_mount; /* time_t */
200+ __u32 last_mount; /* time overflow in y2106 */
199201
200202 __u16 first_bucket;
201203 union {
@@ -318,7 +320,7 @@ struct uuid_entry { · 116 unmodified lines
318320 struct {
319321 __u8 uuid[16];
320322 __u8 label[32];
321− __u32 first_reg;
323+ __u32 first_reg; /* time overflow in y2106 */
322324 __u32 last_reg;
323325 __u32 invalidated;
324326
include/uapi/linux/blkzoned.h+1−1
@@ -117,7 +117,7 @@ struct blk_zone_report { · 116 unmodified lines
117117 __u32 nr_zones;
118118 __u8 reserved[4];
119119 struct blk_zone zones[0];
120−} __packed;
120+};
121121
122122 /**
123123 * struct blk_zone_range - BLKRESETZONE ioctl request
include/uapi/linux/bpf.h+121−9
@@ -75,6 +75,11 @@ struct bpf_lpm_trie_key { · 74 unmodified lines
7575 __u8 data[0]; /* Arbitrary size */
7676 };
7777
78+struct bpf_cgroup_storage_key {
79+ __u64 cgroup_inode_id; /* cgroup inode id */
80+ __u32 attach_type; /* program attach type */
81+};
82+
7883 /* BPF syscall commands, see bpf(2) man-page for details. */
7984 enum bpf_cmd {
8085 BPF_MAP_CREATE,
@@ -120,6 +125,8 @@ enum bpf_map_type { · 39 unmodified lines
120125 BPF_MAP_TYPE_CPUMAP,
121126 BPF_MAP_TYPE_XSKMAP,
122127 BPF_MAP_TYPE_SOCKHASH,
128+ BPF_MAP_TYPE_CGROUP_STORAGE,
129+ BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
123130 };
124131
125132 enum bpf_prog_type {
@@ -144,6 +151,7 @@ enum bpf_prog_type { · 18 unmodified lines
144151 BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
145152 BPF_PROG_TYPE_LWT_SEG6LOCAL,
146153 BPF_PROG_TYPE_LIRC_MODE2,
154+ BPF_PROG_TYPE_SK_REUSEPORT,
147155 };
148156
149157 enum bpf_attach_type {
@@ -1371,6 +1379,20 @@ union bpf_attr { · 1221 unmodified lines
13711379 * A 8-byte long non-decreasing number on success, or 0 if the
13721380 * socket field is missing inside *skb*.
13731381 *
1382+ * u64 bpf_get_socket_cookie(struct bpf_sock_addr *ctx)
1383+ * Description
1384+ * Equivalent to bpf_get_socket_cookie() helper that accepts
1385+ * *skb*, but gets socket from **struct bpf_sock_addr** contex.
1386+ * Return
1387+ * A 8-byte long non-decreasing number.
1388+ *
1389+ * u64 bpf_get_socket_cookie(struct bpf_sock_ops *ctx)
1390+ * Description
1391+ * Equivalent to bpf_get_socket_cookie() helper that accepts
1392+ * *skb*, but gets socket from **struct bpf_sock_ops** contex.
1393+ * Return
1394+ * A 8-byte long non-decreasing number.
1395+ *
13741396 * u32 bpf_get_socket_uid(struct sk_buff *skb)
13751397 * Return
13761398 * The owner UID of the socket associated to *skb*. If the socket
@@ -1826,7 +1848,7 @@ union bpf_attr { · 449 unmodified lines
18261848 * A non-negative value equal to or less than *size* on success,
18271849 * or a negative error in case of failure.
18281850 *
1829− * int skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
1851+ * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
18301852 * Description
18311853 * This helper is similar to **bpf_skb_load_bytes**\ () in that
18321854 * it provides an easy way to load *len* bytes from *offset*
@@ -1857,7 +1879,8 @@ union bpf_attr { · 24 unmodified lines
18571879 * is resolved), the nexthop address is returned in ipv4_dst
18581880 * or ipv6_dst based on family, smac is set to mac address of
18591881 * egress device, dmac is set to nexthop mac address, rt_metric
1860− * is set to metric from route (IPv4/IPv6 only).
1882+ * is set to metric from route (IPv4/IPv6 only), and ifindex
1883+ * is set to the device index of the nexthop from the FIB lookup.
18611884 *
18621885 * *plen* argument is the size of the passed in struct.
18631886 * *flags* argument can be a combination of one or more of the
@@ -1873,9 +1896,10 @@ union bpf_attr { · 9 unmodified lines
18731896 * *ctx* is either **struct xdp_md** for XDP programs or
18741897 * **struct sk_buff** tc cls_act programs.
18751898 * Return
1876− * Egress device index on success, 0 if packet needs to continue
1877− * up the stack for further processing or a negative error in case
1878− * of failure.
1899+ * * < 0 if any input argument is invalid
1900+ * * 0 on success (packet is forwarded, nexthop neighbor exists)
1901+ * * > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
1902+ * packet is not forwarded or needs assist from full stack
18791903 *
18801904 * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
18811905 * Description
@@ -2031,7 +2055,6 @@ union bpf_attr { · 149 unmodified lines
20312055 * This helper is only available is the kernel was compiled with
20322056 * the **CONFIG_BPF_LIRC_MODE2** configuration option set to
20332057 * "**y**".
2034− *
20352058 * Return
20362059 * 0
20372060 *
@@ -2051,7 +2074,6 @@ union bpf_attr { · 13 unmodified lines
20512074 * This helper is only available is the kernel was compiled with
20522075 * the **CONFIG_BPF_LIRC_MODE2** configuration option set to
20532076 * "**y**".
2054− *
20552077 * Return
20562078 * 0
20572079 *
@@ -2071,10 +2093,54 @@ union bpf_attr { · 13 unmodified lines
20712093 * Return
20722094 * The id is returned or 0 in case the id could not be retrieved.
20732095 *
2096+ * u64 bpf_skb_ancestor_cgroup_id(struct sk_buff *skb, int ancestor_level)
2097+ * Description
2098+ * Return id of cgroup v2 that is ancestor of cgroup associated
2099+ * with the *skb* at the *ancestor_level*. The root cgroup is at
2100+ * *ancestor_level* zero and each step down the hierarchy
2101+ * increments the level. If *ancestor_level* == level of cgroup
2102+ * associated with *skb*, then return value will be same as that
2103+ * of **bpf_skb_cgroup_id**\ ().
2104+ *
2105+ * The helper is useful to implement policies based on cgroups
2106+ * that are upper in hierarchy than immediate cgroup associated
2107+ * with *skb*.
2108+ *
2109+ * The format of returned id and helper limitations are same as in
2110+ * **bpf_skb_cgroup_id**\ ().
2111+ * Return
2112+ * The id is returned or 0 in case the id could not be retrieved.
2113+ *
20742114 * u64 bpf_get_current_cgroup_id(void)
20752115 * Return
20762116 * A 64-bit integer containing the current cgroup id based
20772117 * on the cgroup within which the current task is running.
2118+ *
2119+ * void* get_local_storage(void *map, u64 flags)
2120+ * Description
2121+ * Get the pointer to the local storage area.
2122+ * The type and the size of the local storage is defined
2123+ * by the *map* argument.
2124+ * The *flags* meaning is specific for each map type,
2125+ * and has to be 0 for cgroup local storage.
2126+ *
2127+ * Depending on the bpf program type, a local storage area
2128+ * can be shared between multiple instances of the bpf program,
2129+ * running simultaneously.
2130+ *
2131+ * A user should care about the synchronization by himself.
2132+ * For example, by using the BPF_STX_XADD instruction to alter
2133+ * the shared data.
2134+ * Return
2135+ * Pointer to the local storage area.
2136+ *
2137+ * int bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
2138+ * Description
2139+ * Select a SO_REUSEPORT sk from a BPF_MAP_TYPE_REUSEPORT_ARRAY map
2140+ * It checks the selected sk is matching the incoming
2141+ * request in the skb.
2142+ * Return
2143+ * 0 on success, or a negative error in case of failure.
20782144 */
20792145 #define __BPF_FUNC_MAPPER(FN) \
20802146 FN(unspec), \
@@ -2157,7 +2223,10 @@ union bpf_attr { · 76 unmodified lines
21572223 FN(rc_repeat), \
21582224 FN(rc_keydown), \
21592225 FN(skb_cgroup_id), \
2160− FN(get_current_cgroup_id),
2226+ FN(get_current_cgroup_id), \
2227+ FN(get_local_storage), \
2228+ FN(sk_select_reuseport), \
2229+ FN(skb_ancestor_cgroup_id),
21612230
21622231 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
21632232 * function eBPF program intends to call
@@ -2374,6 +2443,30 @@ struct sk_msg_md { · 210 unmodified lines
23742443 __u32 local_port; /* stored in host byte order */
23752444 };
23762445
2446+struct sk_reuseport_md {
2447+ /*
2448+ * Start of directly accessible data. It begins from
2449+ * the tcp/udp header.
2450+ */
2451+ void *data;
2452+ void *data_end; /* End of directly accessible data */
2453+ /*
2454+ * Total length of packet (starting from the tcp/udp header).
2455+ * Note that the directly accessible bytes (data_end - data)
2456+ * could be less than this "len". Those bytes could be
2457+ * indirectly read by a helper "bpf_skb_load_bytes()".
2458+ */
2459+ __u32 len;
2460+ /*
2461+ * Eth protocol in the mac header (network byte order). e.g.
2462+ * ETH_P_IP(0x0800) and ETH_P_IPV6(0x86DD)
2463+ */
2464+ __u32 eth_protocol;
2465+ __u32 ip_protocol; /* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
2466+ __u32 bind_inany; /* Is sock bound to an INANY address? */
2467+ __u32 hash; /* A hash of the packet 4 tuples */
2468+};
2469+
23772470 #define BPF_TAG_SIZE 8
23782471
23792472 struct bpf_prog_info {
@@ -2555,6 +2648,9 @@ enum { · 175 unmodified lines
25552648 * Arg1: old_state
25562649 * Arg2: new_state
25572650 */
2651+ BPF_SOCK_OPS_TCP_LISTEN_CB, /* Called on listen(2), right after
2652+ * socket transition to LISTEN state.
2653+ */
25582654 };
25592655
25602656 /* List of TCP states. There is a build check in net/ipv4/tcp.c to detect
@@ -2612,6 +2708,18 @@ struct bpf_raw_tracepoint_args { · 51 unmodified lines
26122708 #define BPF_FIB_LOOKUP_DIRECT BIT(0)
26132709 #define BPF_FIB_LOOKUP_OUTPUT BIT(1)
26142710
2711+enum {
2712+ BPF_FIB_LKUP_RET_SUCCESS, /* lookup successful */
2713+ BPF_FIB_LKUP_RET_BLACKHOLE, /* dest is blackholed; can be dropped */
2714+ BPF_FIB_LKUP_RET_UNREACHABLE, /* dest is unreachable; can be dropped */
2715+ BPF_FIB_LKUP_RET_PROHIBIT, /* dest not allowed; can be dropped */
2716+ BPF_FIB_LKUP_RET_NOT_FWDED, /* packet is not forwarded */
2717+ BPF_FIB_LKUP_RET_FWD_DISABLED, /* fwding is not enabled on ingress */
2718+ BPF_FIB_LKUP_RET_UNSUPP_LWT, /* fwd requires encapsulation */
2719+ BPF_FIB_LKUP_RET_NO_NEIGH, /* no neighbor entry for nh */
2720+ BPF_FIB_LKUP_RET_FRAG_NEEDED, /* fragmentation required to fwd */
2721+};
2722+
26152723 struct bpf_fib_lookup {
26162724 /* input: network family for lookup (AF_INET, AF_INET6)
26172725 * output: network family of egress nexthop
@@ -2625,7 +2733,11 @@ struct bpf_fib_lookup { · 7 unmodified lines
26252733
26262734 /* total length of packet from network header - used for MTU check */
26272735 __u16 tot_len;
2628− __u32 ifindex; /* L3 device index for lookup */
2736+
2737+ /* input: L3 device index for lookup
2738+ * output: device index from FIB lookup
2739+ */
2740+ __u32 ifindex;
26292741
26302742 union {
26312743 /* inputs to lookup */
include/uapi/linux/btf.h+1−1
@@ -76,7 +76,7 @@ struct btf_type { · 75 unmodified lines
7676 */
7777 #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
7878 #define BTF_INT_OFFSET(VAL) (((VAL & 0x00ff0000)) >> 16)
79−#define BTF_INT_BITS(VAL) ((VAL) & 0x0000ffff)
79+#define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
8080
8181 /* Attributes stored in the BTF_INT_ENCODING */
8282 #define BTF_INT_SIGNED (1 << 0)
include/uapi/linux/can.h+1−1
@@ -77,7 +77,7 @@ typedef __u32 canid_t; · 76 unmodified lines
7777 /*
7878 * Controller Area Network Error Message Frame Mask structure
7979 *
80− * bit 0-28 : error class mask (see include/linux/can/error.h)
80+ * bit 0-28 : error class mask (see include/uapi/linux/can/error.h)
8181 * bit 29-31 : set to zero
8282 */
8383 typedef __u32 can_err_mask_t;
include/uapi/linux/cec.h+2−0
@@ -384,6 +384,8 @@ struct cec_log_addrs { · 383 unmodified lines
384384 #define CEC_EVENT_PIN_CEC_HIGH 4
385385 #define CEC_EVENT_PIN_HPD_LOW 5
386386 #define CEC_EVENT_PIN_HPD_HIGH 6
387+#define CEC_EVENT_PIN_5V_LOW 7
388+#define CEC_EVENT_PIN_5V_HIGH 8
387389
388390 #define CEC_EVENT_FL_INITIAL_STATE (1 << 0)
389391 #define CEC_EVENT_FL_DROPPED_EVENTS (1 << 1)
include/uapi/linux/dcbnl.h+2−1
@@ -233,7 +233,8 @@ struct cee_pfc { · 232 unmodified lines
233233 * 2 Well known port number over TCP or SCTP
234234 * 3 Well known port number over UDP or DCCP
235235 * 4 Well known port number over TCP, SCTP, UDP, or DCCP
236− * 5-7 Reserved
236+ * 5 Differentiated Services Code Point (DSCP) value
237+ * 6-7 Reserved
237238 *
238239 * Selector field values for CEE
239240 * 0 Ethertype
include/uapi/linux/devlink.h+42−0
@@ -78,6 +78,17 @@ enum devlink_command { · 77 unmodified lines
7878 */
7979 DEVLINK_CMD_RELOAD,
8080
81+ DEVLINK_CMD_PARAM_GET, /* can dump */
82+ DEVLINK_CMD_PARAM_SET,
83+ DEVLINK_CMD_PARAM_NEW,
84+ DEVLINK_CMD_PARAM_DEL,
85+
86+ DEVLINK_CMD_REGION_GET,
87+ DEVLINK_CMD_REGION_SET,
88+ DEVLINK_CMD_REGION_NEW,
89+ DEVLINK_CMD_REGION_DEL,
90+ DEVLINK_CMD_REGION_READ,
91+
8192 /* add new commands above here */
8293 __DEVLINK_CMD_MAX,
8394 DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -142,6 +153,16 @@ enum devlink_port_flavour { · 58 unmodified lines
142153 */
143154 };
144155
156+enum devlink_param_cmode {
157+ DEVLINK_PARAM_CMODE_RUNTIME,
158+ DEVLINK_PARAM_CMODE_DRIVERINIT,
159+ DEVLINK_PARAM_CMODE_PERMANENT,
160+
161+ /* Add new configuration modes above */
162+ __DEVLINK_PARAM_CMODE_MAX,
163+ DEVLINK_PARAM_CMODE_MAX = __DEVLINK_PARAM_CMODE_MAX - 1
164+};
165+
145166 enum devlink_attr {
146167 /* don't change the order or add anything between, this is ABI! */
147168 DEVLINK_ATTR_UNSPEC,
@@ -238,6 +259,27 @@ enum devlink_attr { · 90 unmodified lines
238259 DEVLINK_ATTR_PORT_NUMBER, /* u32 */
239260 DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER, /* u32 */
240261
262+ DEVLINK_ATTR_PARAM, /* nested */
263+ DEVLINK_ATTR_PARAM_NAME, /* string */
264+ DEVLINK_ATTR_PARAM_GENERIC, /* flag */
265+ DEVLINK_ATTR_PARAM_TYPE, /* u8 */
266+ DEVLINK_ATTR_PARAM_VALUES_LIST, /* nested */
267+ DEVLINK_ATTR_PARAM_VALUE, /* nested */
268+ DEVLINK_ATTR_PARAM_VALUE_DATA, /* dynamic */
269+ DEVLINK_ATTR_PARAM_VALUE_CMODE, /* u8 */
270+
271+ DEVLINK_ATTR_REGION_NAME, /* string */
272+ DEVLINK_ATTR_REGION_SIZE, /* u64 */
273+ DEVLINK_ATTR_REGION_SNAPSHOTS, /* nested */
274+ DEVLINK_ATTR_REGION_SNAPSHOT, /* nested */
275+ DEVLINK_ATTR_REGION_SNAPSHOT_ID, /* u32 */
276+
277+ DEVLINK_ATTR_REGION_CHUNKS, /* nested */
278+ DEVLINK_ATTR_REGION_CHUNK, /* nested */
279+ DEVLINK_ATTR_REGION_CHUNK_DATA, /* binary */
280+ DEVLINK_ATTR_REGION_CHUNK_ADDR, /* u64 */
281+ DEVLINK_ATTR_REGION_CHUNK_LEN, /* u64 */
282+
241283 /* add new attributes above here, update the policy in devlink.c */
242284
243285 __DEVLINK_ATTR_MAX,
include/uapi/linux/dvb/audio.h+0−37
@@ -67,27 +67,6 @@ typedef struct audio_status { · 66 unmodified lines
6767 } audio_status_t; /* separate decoder hardware */
6868
6969
70−typedef
71−struct audio_karaoke { /* if Vocal1 or Vocal2 are non-zero, they get mixed */
72− int vocal1; /* into left and right t at 70% each */
73− int vocal2; /* if both, Vocal1 and Vocal2 are non-zero, Vocal1 gets*/
74− int melody; /* mixed into the left channel and */
75− /* Vocal2 into the right channel at 100% each. */
76− /* if Melody is non-zero, the melody channel gets mixed*/
77−} audio_karaoke_t; /* into left and right */
78−
79−
80−typedef __u16 audio_attributes_t;
81−/* bits: descr. */
82−/* 15-13 audio coding mode (0=ac3, 2=mpeg1, 3=mpeg2ext, 4=LPCM, 6=DTS, */
83−/* 12 multichannel extension */
84−/* 11-10 audio type (0=not spec, 1=language included) */
85−/* 9- 8 audio application mode (0=not spec, 1=karaoke, 2=surround) */
86−/* 7- 6 Quantization / DRC (mpeg audio: 1=DRC exists)(lpcm: 0=16bit, */
87−/* 5- 4 Sample frequency fs (0=48kHz, 1=96kHz) */
88−/* 2- 0 number of audio channels (n+1 channels) */
89−
90−
9170 /* for GET_CAPABILITIES and SET_FORMAT, the latter should only set one bit */
9271 #define AUDIO_CAP_DTS 1
9372 #define AUDIO_CAP_LPCM 2
@@ -115,22 +94,6 @@ typedef __u16 audio_attributes_t; · 21 unmodified lines
11594 #define AUDIO_SET_ID _IO('o', 13)
11695 #define AUDIO_SET_MIXER _IOW('o', 14, audio_mixer_t)
11796 #define AUDIO_SET_STREAMTYPE _IO('o', 15)
118−#define AUDIO_SET_EXT_ID _IO('o', 16)
119−#define AUDIO_SET_ATTRIBUTES _IOW('o', 17, audio_attributes_t)
120−#define AUDIO_SET_KARAOKE _IOW('o', 18, audio_karaoke_t)
121−
122−/**
123− * AUDIO_GET_PTS
124− *
125− * Read the 33 bit presentation time stamp as defined
126− * in ITU T-REC-H.222.0 / ISO/IEC 13818-1.
127− *
128− * The PTS should belong to the currently played
129− * frame if possible, but may also be a value close to it
130− * like the PTS of the last decoded frame or the last PTS
131− * extracted by the PES parser.
132− */
133−#define AUDIO_GET_PTS _IOR('o', 19, __u64)
13497 #define AUDIO_BILINGUAL_CHANNEL_SELECT _IO('o', 20)
13598
13699 #endif /* _DVBAUDIO_H_ */
include/uapi/linux/dvb/video.h+0−58
@@ -37,18 +37,6 @@ typedef enum { · 36 unmodified lines
3737 } video_format_t;
3838
3939
40−typedef enum {
41− VIDEO_SYSTEM_PAL,
42− VIDEO_SYSTEM_NTSC,
43− VIDEO_SYSTEM_PALN,
44− VIDEO_SYSTEM_PALNc,
45− VIDEO_SYSTEM_PALM,
46− VIDEO_SYSTEM_NTSC60,
47− VIDEO_SYSTEM_PAL60,
48− VIDEO_SYSTEM_PALM60
49−} video_system_t;
50−
51−
5240 typedef enum {
5341 VIDEO_PAN_SCAN, /* use pan and scan format */
5442 VIDEO_LETTER_BOX, /* use letterbox format */
@@ -160,44 +148,6 @@ struct video_still_picture { · 105 unmodified lines
160148 };
161149
162150
163−typedef
164−struct video_highlight {
165− int active; /* 1=show highlight, 0=hide highlight */
166− __u8 contrast1; /* 7- 4 Pattern pixel contrast */
167− /* 3- 0 Background pixel contrast */
168− __u8 contrast2; /* 7- 4 Emphasis pixel-2 contrast */
169− /* 3- 0 Emphasis pixel-1 contrast */
170− __u8 color1; /* 7- 4 Pattern pixel color */
171− /* 3- 0 Background pixel color */
172− __u8 color2; /* 7- 4 Emphasis pixel-2 color */
173− /* 3- 0 Emphasis pixel-1 color */
174− __u32 ypos; /* 23-22 auto action mode */
175− /* 21-12 start y */
176− /* 9- 0 end y */
177− __u32 xpos; /* 23-22 button color number */
178− /* 21-12 start x */
179− /* 9- 0 end x */
180−} video_highlight_t;
181−
182−
183−typedef struct video_spu {
184− int active;
185− int stream_id;
186−} video_spu_t;
187−
188−
189−typedef struct video_spu_palette { /* SPU Palette information */
190− int length;
191− __u8 __user *palette;
192−} video_spu_palette_t;
193−
194−
195−typedef struct video_navi_pack {
196− int length; /* 0 ... 1024 */
197− __u8 data[1024];
198−} video_navi_pack_t;
199−
200−
201151 typedef __u16 video_attributes_t;
202152 /* bits: descr. */
203153 /* 15-14 Video compression mode (0=MPEG-1, 1=MPEG-2) */
@@ -242,17 +192,9 @@ typedef __u16 video_attributes_t; · 38 unmodified lines
242192 #define VIDEO_SLOWMOTION _IO('o', 32)
243193 #define VIDEO_GET_CAPABILITIES _IOR('o', 33, unsigned int)
244194 #define VIDEO_CLEAR_BUFFER _IO('o', 34)
245−#define VIDEO_SET_ID _IO('o', 35)
246195 #define VIDEO_SET_STREAMTYPE _IO('o', 36)
247196 #define VIDEO_SET_FORMAT _IO('o', 37)
248−#define VIDEO_SET_SYSTEM _IO('o', 38)
249−#define VIDEO_SET_HIGHLIGHT _IOW('o', 39, video_highlight_t)
250−#define VIDEO_SET_SPU _IOW('o', 50, video_spu_t)
251−#define VIDEO_SET_SPU_PALETTE _IOW('o', 51, video_spu_palette_t)
252−#define VIDEO_GET_NAVI _IOR('o', 52, video_navi_pack_t)
253−#define VIDEO_SET_ATTRIBUTES _IO('o', 53)
254197 #define VIDEO_GET_SIZE _IOR('o', 55, video_size_t)
255−#define VIDEO_GET_FRAME_RATE _IOR('o', 56, unsigned int)
256198
257199 /**
258200 * VIDEO_GET_PTS
include/uapi/linux/elf.h+2−0
@@ -422,6 +422,8 @@ typedef struct elf64_shdr { · 421 unmodified lines
422422 #define NT_ARM_SVE 0x405 /* ARM Scalable Vector Extension registers */
423423 #define NT_ARC_V2 0x600 /* ARCv2 accumulator/extra registers */
424424 #define NT_VMCOREDD 0x700 /* Vmcore Device Dump Note */
425+#define NT_MIPS_DSP 0x800 /* MIPS DSP ASE registers */
426+#define NT_MIPS_FP_MODE 0x801 /* MIPS floating-point mode */
425427
426428 /* Note header in a PT_NOTE section */
427429 typedef struct elf32_note {
include/uapi/linux/errqueue.h+4−0
@@ -20,12 +20,16 @@ struct sock_extended_err { · 19 unmodified lines
2020 #define SO_EE_ORIGIN_ICMP6 3
2121 #define SO_EE_ORIGIN_TXSTATUS 4
2222 #define SO_EE_ORIGIN_ZEROCOPY 5
23+#define SO_EE_ORIGIN_TXTIME 6
2324 #define SO_EE_ORIGIN_TIMESTAMPING SO_EE_ORIGIN_TXSTATUS
2425
2526 #define SO_EE_OFFENDER(ee) ((struct sockaddr*)((ee)+1))
2627
2728 #define SO_EE_CODE_ZEROCOPY_COPIED 1
2829
30+#define SO_EE_CODE_TXTIME_INVALID_PARAM 1
31+#define SO_EE_CODE_TXTIME_MISSED 2
32+
2933 /**
3034 * struct scm_timestamping - timestamps exposed through cmsg
3135 *
include/uapi/linux/ethtool.h+7−4
@@ -226,7 +226,7 @@ enum tunable_id { · 225 unmodified lines
226226 ETHTOOL_TX_COPYBREAK,
227227 ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
228228 /*
229− * Add your fresh new tubale attribute above and remember to update
229+ * Add your fresh new tunable attribute above and remember to update
230230 * tunable_strings[] in net/core/ethtool.c
231231 */
232232 __ETHTOOL_TUNABLE_COUNT,
@@ -870,7 +870,8 @@ struct ethtool_flow_ext { · 637 unmodified lines
870870 * includes the %FLOW_EXT or %FLOW_MAC_EXT flag
871871 * (see &struct ethtool_flow_ext description).
872872 * @ring_cookie: RX ring/queue index to deliver to, or %RX_CLS_FLOW_DISC
873− * if packets should be discarded
873+ * if packets should be discarded, or %RX_CLS_FLOW_WAKE if the
874+ * packets should be used for Wake-on-LAN with %WAKE_FILTER
874875 * @location: Location of rule in the table. Locations must be
875876 * numbered such that a flow matching multiple rules will be
876877 * classified according to the first (lowest numbered) rule.
@@ -902,13 +903,13 @@ struct ethtool_rx_flow_spec { · 25 unmodified lines
902903 static inline __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie)
903904 {
904905 return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie;
905−};
906+}
906907
907908 static inline __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
908909 {
909910 return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >>
910911 ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF;
911−};
912+}
912913
913914 /**
914915 * struct ethtool_rxnfc - command to get or set RX flow classification rules
@@ -1634,6 +1635,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 719 unmodified lines
16341635 #define WAKE_ARP (1 << 4)
16351636 #define WAKE_MAGIC (1 << 5)
16361637 #define WAKE_MAGICSECURE (1 << 6) /* only meaningful if WAKE_MAGIC */
1638+#define WAKE_FILTER (1 << 7)
16371639
16381640 /* L2-L4 network traffic flow types */
16391641 #define TCP_V4_FLOW 0x01 /* hash or spec (tcp_ip4_spec) */
@@ -1671,6 +1673,7 @@ static inline int ethtool_validate_duplex(__u8 duplex) · 31 unmodified lines
16711673 #define RXH_DISCARD (1 << 31)
16721674
16731675 #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
1676+#define RX_CLS_FLOW_WAKE 0xfffffffffffffffeULL
16741677
16751678 /* Special RX classification rule insert location values */
16761679 #define RX_CLS_LOC_SPECIAL 0x80000000 /* flag */
include/uapi/linux/eventpoll.h+4−4
@@ -42,7 +42,7 @@ · 41 unmodified lines
4242 #define EPOLLRDHUP (__force __poll_t)0x00002000
4343
4444 /* Set exclusive wakeup mode for the target file descriptor */
45−#define EPOLLEXCLUSIVE (__force __poll_t)(1U << 28)
45+#define EPOLLEXCLUSIVE ((__force __poll_t)(1U << 28))
4646
4747 /*
4848 * Request the handling of system wakeup events so as to prevent system suspends
@@ -54,13 +54,13 @@ · 5 unmodified lines
5454 *
5555 * Requires CAP_BLOCK_SUSPEND
5656 */
57−#define EPOLLWAKEUP (__force __poll_t)(1U << 29)
57+#define EPOLLWAKEUP ((__force __poll_t)(1U << 29))
5858
5959 /* Set the One Shot behaviour for the target file descriptor */
60−#define EPOLLONESHOT (__force __poll_t)(1U << 30)
60+#define EPOLLONESHOT ((__force __poll_t)(1U << 30))
6161
6262 /* Set the Edge Triggered behaviour for the target file descriptor */
63−#define EPOLLET (__force __poll_t)(1U << 31)
63+#define EPOLLET ((__force __poll_t)(1U << 31))
6464
6565 /*
6666 * On x86-64 make the 64bit structure have the same alignment as the
include/uapi/linux/fpga-dfl.h+179−0
@@ -0,0 +1,179 @@
1+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2+/*
3+ * Header File for FPGA DFL User API
4+ *
5+ * Copyright (C) 2017-2018 Intel Corporation, Inc.
6+ *
7+ * Authors:
8+ * Kang Luwei <luwei.kang@intel.com>
9+ * Zhang Yi <yi.z.zhang@intel.com>
10+ * Wu Hao <hao.wu@intel.com>
11+ * Xiao Guangrong <guangrong.xiao@linux.intel.com>
12+ */
13+
14+#ifndef _UAPI_LINUX_FPGA_DFL_H
15+#define _UAPI_LINUX_FPGA_DFL_H
16+
17+#include <linux/types.h>
18+#include <linux/ioctl.h>
19+
20+#define DFL_FPGA_API_VERSION 0
21+
22+/*
23+ * The IOCTL interface for DFL based FPGA is designed for extensibility by
24+ * embedding the structure length (argsz) and flags into structures passed
25+ * between kernel and userspace. This design referenced the VFIO IOCTL
26+ * interface (include/uapi/linux/vfio.h).
27+ */
28+
29+#define DFL_FPGA_MAGIC 0xB6
30+
31+#define DFL_FPGA_BASE 0
32+#define DFL_PORT_BASE 0x40
33+#define DFL_FME_BASE 0x80
34+
35+/* Common IOCTLs for both FME and AFU file descriptor */
36+
37+/**
38+ * DFL_FPGA_GET_API_VERSION - _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0)
39+ *
40+ * Report the version of the driver API.
41+ * Return: Driver API Version.
42+ */
43+
44+#define DFL_FPGA_GET_API_VERSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 0)
45+
46+/**
47+ * DFL_FPGA_CHECK_EXTENSION - _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1)
48+ *
49+ * Check whether an extension is supported.
50+ * Return: 0 if not supported, otherwise the extension is supported.
51+ */
52+
53+#define DFL_FPGA_CHECK_EXTENSION _IO(DFL_FPGA_MAGIC, DFL_FPGA_BASE + 1)
54+
55+/* IOCTLs for AFU file descriptor */
56+
57+/**
58+ * DFL_FPGA_PORT_RESET - _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0)
59+ *
60+ * Reset the FPGA Port and its AFU. No parameters are supported.
61+ * Userspace can do Port reset at any time, e.g. during DMA or PR. But
62+ * it should never cause any system level issue, only functional failure
63+ * (e.g. DMA or PR operation failure) and be recoverable from the failure.
64+ * Return: 0 on success, -errno of failure
65+ */
66+
67+#define DFL_FPGA_PORT_RESET _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 0)
68+
69+/**
70+ * DFL_FPGA_PORT_GET_INFO - _IOR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1,
71+ * struct dfl_fpga_port_info)
72+ *
73+ * Retrieve information about the fpga port.
74+ * Driver fills the info in provided struct dfl_fpga_port_info.
75+ * Return: 0 on success, -errno on failure.
76+ */
77+struct dfl_fpga_port_info {
78+ /* Input */
79+ __u32 argsz; /* Structure length */
80+ /* Output */
81+ __u32 flags; /* Zero for now */
82+ __u32 num_regions; /* The number of supported regions */
83+ __u32 num_umsgs; /* The number of allocated umsgs */
84+};
85+
86+#define DFL_FPGA_PORT_GET_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 1)
87+
88+/**
89+ * FPGA_PORT_GET_REGION_INFO - _IOWR(FPGA_MAGIC, PORT_BASE + 2,
90+ * struct dfl_fpga_port_region_info)
91+ *
92+ * Retrieve information about a device memory region.
93+ * Caller provides struct dfl_fpga_port_region_info with index value set.
94+ * Driver returns the region info in other fields.
95+ * Return: 0 on success, -errno on failure.
96+ */
97+struct dfl_fpga_port_region_info {
98+ /* input */
99+ __u32 argsz; /* Structure length */
100+ /* Output */
101+ __u32 flags; /* Access permission */
102+#define DFL_PORT_REGION_READ (1 << 0) /* Region is readable */
103+#define DFL_PORT_REGION_WRITE (1 << 1) /* Region is writable */
104+#define DFL_PORT_REGION_MMAP (1 << 2) /* Can be mmaped to userspace */
105+ /* Input */
106+ __u32 index; /* Region index */
107+#define DFL_PORT_REGION_INDEX_AFU 0 /* AFU */
108+#define DFL_PORT_REGION_INDEX_STP 1 /* Signal Tap */
109+ __u32 padding;
110+ /* Output */
111+ __u64 size; /* Region size (bytes) */
112+ __u64 offset; /* Region offset from start of device fd */
113+};
114+
115+#define DFL_FPGA_PORT_GET_REGION_INFO _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 2)
116+
117+/**
118+ * DFL_FPGA_PORT_DMA_MAP - _IOWR(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3,
119+ * struct dfl_fpga_port_dma_map)
120+ *
121+ * Map the dma memory per user_addr and length which are provided by caller.
122+ * Driver fills the iova in provided struct afu_port_dma_map.
123+ * This interface only accepts page-size aligned user memory for dma mapping.
124+ * Return: 0 on success, -errno on failure.
125+ */
126+struct dfl_fpga_port_dma_map {
127+ /* Input */
128+ __u32 argsz; /* Structure length */
129+ __u32 flags; /* Zero for now */
130+ __u64 user_addr; /* Process virtual address */
131+ __u64 length; /* Length of mapping (bytes)*/
132+ /* Output */
133+ __u64 iova; /* IO virtual address */
134+};
135+
136+#define DFL_FPGA_PORT_DMA_MAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 3)
137+
138+/**
139+ * DFL_FPGA_PORT_DMA_UNMAP - _IOW(FPGA_MAGIC, PORT_BASE + 4,
140+ * struct dfl_fpga_port_dma_unmap)
141+ *
142+ * Unmap the dma memory per iova provided by caller.
143+ * Return: 0 on success, -errno on failure.
144+ */
145+struct dfl_fpga_port_dma_unmap {
146+ /* Input */
147+ __u32 argsz; /* Structure length */
148+ __u32 flags; /* Zero for now */
149+ __u64 iova; /* IO virtual address */
150+};
151+
152+#define DFL_FPGA_PORT_DMA_UNMAP _IO(DFL_FPGA_MAGIC, DFL_PORT_BASE + 4)
153+
154+/* IOCTLs for FME file descriptor */
155+
156+/**
157+ * DFL_FPGA_FME_PORT_PR - _IOW(DFL_FPGA_MAGIC, DFL_FME_BASE + 0,
158+ * struct dfl_fpga_fme_port_pr)
159+ *
160+ * Driver does Partial Reconfiguration based on Port ID and Buffer (Image)
161+ * provided by caller.
162+ * Return: 0 on success, -errno on failure.
163+ * If DFL_FPGA_FME_PORT_PR returns -EIO, that indicates the HW has detected
164+ * some errors during PR, under this case, the user can fetch HW error info
165+ * from the status of FME's fpga manager.
166+ */
167+
168+struct dfl_fpga_fme_port_pr {
169+ /* Input */
170+ __u32 argsz; /* Structure length */
171+ __u32 flags; /* Zero for now */
172+ __u32 port_id;
173+ __u32 buffer_size;
174+ __u64 buffer_address; /* Userspace address to the buffer for PR */
175+};
176+
177+#define DFL_FPGA_FME_PORT_PR _IO(DFL_FPGA_MAGIC, DFL_FME_BASE + 0)
178+
179+#endif /* _UAPI_LINUX_FPGA_DFL_H */
include/uapi/linux/fsi.h+58−0
@@ -0,0 +1,58 @@
1+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2+#ifndef _UAPI_LINUX_FSI_H
3+#define _UAPI_LINUX_FSI_H
4+
5+#include <linux/types.h>
6+#include <linux/ioctl.h>
7+
8+/*
9+ * /dev/scom "raw" ioctl interface
10+ *
11+ * The driver supports a high level "read/write" interface which
12+ * handles retries and converts the status to Linux error codes,
13+ * however low level tools an debugger need to access the "raw"
14+ * HW status information and interpret it themselves, so this
15+ * ioctl interface is also provided for their use case.
16+ */
17+
18+/* Structure for SCOM read/write */
19+struct scom_access {
20+ __u64 addr; /* SCOM address, supports indirect */
21+ __u64 data; /* SCOM data (in for write, out for read) */
22+ __u64 mask; /* Data mask for writes */
23+ __u32 intf_errors; /* Interface error flags */
24+#define SCOM_INTF_ERR_PARITY 0x00000001 /* Parity error */
25+#define SCOM_INTF_ERR_PROTECTION 0x00000002 /* Blocked by secure boot */
26+#define SCOM_INTF_ERR_ABORT 0x00000004 /* PIB reset during access */
27+#define SCOM_INTF_ERR_UNKNOWN 0x80000000 /* Unknown error */
28+ /*
29+ * Note: Any other bit set in intf_errors need to be considered as an
30+ * error. Future implementations may define new error conditions. The
31+ * pib_status below is only valid if intf_errors is 0.
32+ */
33+ __u8 pib_status; /* 3-bit PIB status */
34+#define SCOM_PIB_SUCCESS 0 /* Access successful */
35+#define SCOM_PIB_BLOCKED 1 /* PIB blocked, pls retry */
36+#define SCOM_PIB_OFFLINE 2 /* Chiplet offline */
37+#define SCOM_PIB_PARTIAL 3 /* Partial good */
38+#define SCOM_PIB_BAD_ADDR 4 /* Invalid address */
39+#define SCOM_PIB_CLK_ERR 5 /* Clock error */
40+#define SCOM_PIB_PARITY_ERR 6 /* Parity error on the PIB bus */
41+#define SCOM_PIB_TIMEOUT 7 /* Bus timeout */
42+ __u8 pad;
43+};
44+
45+/* Flags for SCOM check */
46+#define SCOM_CHECK_SUPPORTED 0x00000001 /* Interface supported */
47+#define SCOM_CHECK_PROTECTED 0x00000002 /* Interface blocked by secure boot */
48+
49+/* Flags for SCOM reset */
50+#define SCOM_RESET_INTF 0x00000001 /* Reset interface */
51+#define SCOM_RESET_PIB 0x00000002 /* Reset PIB */
52+
53+#define FSI_SCOM_CHECK _IOR('s', 0x00, __u32)
54+#define FSI_SCOM_READ _IOWR('s', 0x01, struct scom_access)
55+#define FSI_SCOM_WRITE _IOWR('s', 0x02, struct scom_access)
56+#define FSI_SCOM_RESET _IOW('s', 0x03, __u32)
57+
58+#endif /* _UAPI_LINUX_FSI_H */
include/uapi/linux/if_link.h+17−0
@@ -164,6 +164,8 @@ enum { · 163 unmodified lines
164164 IFLA_CARRIER_UP_COUNT,
165165 IFLA_CARRIER_DOWN_COUNT,
166166 IFLA_NEW_IFINDEX,
167+ IFLA_MIN_MTU,
168+ IFLA_MAX_MTU,
167169 __IFLA_MAX
168170 };
169171
@@ -334,6 +336,7 @@ enum { · 164 unmodified lines
334336 IFLA_BRPORT_GROUP_FWD_MASK,
335337 IFLA_BRPORT_NEIGH_SUPPRESS,
336338 IFLA_BRPORT_ISOLATED,
339+ IFLA_BRPORT_BACKUP_PORT,
337340 __IFLA_BRPORT_MAX
338341 };
339342 #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1)
@@ -459,6 +462,16 @@ enum { · 119 unmodified lines
459462
460463 #define IFLA_MACSEC_MAX (__IFLA_MACSEC_MAX - 1)
461464
465+/* XFRM section */
466+enum {
467+ IFLA_XFRM_UNSPEC,
468+ IFLA_XFRM_LINK,
469+ IFLA_XFRM_IF_ID,
470+ __IFLA_XFRM_MAX
471+};
472+
473+#define IFLA_XFRM_MAX (__IFLA_XFRM_MAX - 1)
474+
462475 enum macsec_validation_type {
463476 MACSEC_VALIDATE_DISABLED = 0,
464477 MACSEC_VALIDATE_CHECK = 1,
@@ -920,6 +933,7 @@ enum { · 455 unmodified lines
920933 XDP_ATTACHED_DRV,
921934 XDP_ATTACHED_SKB,
922935 XDP_ATTACHED_HW,
936+ XDP_ATTACHED_MULTI,
923937 };
924938
925939 enum {
@@ -928,6 +942,9 @@ enum { · 2 unmodified lines
928942 IFLA_XDP_ATTACHED,
929943 IFLA_XDP_FLAGS,
930944 IFLA_XDP_PROG_ID,
945+ IFLA_XDP_DRV_PROG_ID,
946+ IFLA_XDP_SKB_PROG_ID,
947+ IFLA_XDP_HW_PROG_ID,
931948 __IFLA_XDP_MAX,
932949 };
933950
include/uapi/linux/iio/types.h+3−0
@@ -44,6 +44,8 @@ enum iio_chan_type { · 43 unmodified lines
4444 IIO_COUNT,
4545 IIO_INDEX,
4646 IIO_GRAVITY,
47+ IIO_POSITIONRELATIVE,
48+ IIO_PHASE,
4749 };
4850
4951 enum iio_modifier {
@@ -84,6 +86,7 @@ enum iio_modifier { · 34 unmodified lines
8486 IIO_MOD_CO2,
8587 IIO_MOD_VOC,
8688 IIO_MOD_LIGHT_UV,
89+ IIO_MOD_LIGHT_DUV,
8790 };
8891
8992 enum iio_event_type {
include/uapi/linux/ila.h+1−0
@@ -30,6 +30,7 @@ enum { · 29 unmodified lines
3030 ILA_CMD_ADD,
3131 ILA_CMD_DEL,
3232 ILA_CMD_GET,
33+ ILA_CMD_FLUSH,
3334
3435 __ILA_CMD_MAX,
3536 };
include/uapi/linux/inotify.h+1−0
@@ -53,6 +53,7 @@ struct inotify_event { · 52 unmodified lines
5353 #define IN_ONLYDIR 0x01000000 /* only watch the path if it is a directory */
5454 #define IN_DONT_FOLLOW 0x02000000 /* don't follow a sym link */
5555 #define IN_EXCL_UNLINK 0x04000000 /* exclude events on unlinked objects */
56+#define IN_MASK_CREATE 0x10000000 /* only create watches */
5657 #define IN_MASK_ADD 0x20000000 /* add to the mask of an already existing watch */
5758 #define IN_ISDIR 0x40000000 /* event occurred against dir */
5859 #define IN_ONESHOT 0x80000000 /* only send event once */
include/uapi/linux/input.h+5−4
@@ -270,10 +270,11 @@ struct input_mask { · 269 unmodified lines
270270 /*
271271 * MT_TOOL types
272272 */
273−#define MT_TOOL_FINGER 0
274−#define MT_TOOL_PEN 1
275−#define MT_TOOL_PALM 2
276−#define MT_TOOL_MAX 2
273+#define MT_TOOL_FINGER 0x00
274+#define MT_TOOL_PEN 0x01
275+#define MT_TOOL_PALM 0x02
276+#define MT_TOOL_DIAL 0x0a
277+#define MT_TOOL_MAX 0x0f
277278
278279 /*
279280 * Values describing the status of a force-feedback effect
include/uapi/linux/ip.h+1−0
@@ -168,6 +168,7 @@ enum · 167 unmodified lines
168168 IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN,
169169 IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
170170 IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
171+ IPV4_DEVCONF_BC_FORWARDING,
171172 __IPV4_DEVCONF_MAX
172173 };
173174
include/uapi/linux/joystick.h+0−4
@@ -18,10 +18,6 @@ · 17 unmodified lines
1818 * You should have received a copy of the GNU General Public License
1919 * along with this program; if not, write to the Free Software
2020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21− *
22− * Should you need to contact me, the author, you can do so either by
23− * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
24− * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
2521 */
2622 #ifndef _UAPI_LINUX_JOYSTICK_H
2723 #define _UAPI_LINUX_JOYSTICK_H
include/uapi/linux/keyboard.h+22−1
@@ -357,8 +357,29 @@ · 356 unmodified lines
357357 #define K_DTILDE K(KT_DEAD,3)
358358 #define K_DDIERE K(KT_DEAD,4)
359359 #define K_DCEDIL K(KT_DEAD,5)
360+#define K_DMACRON K(KT_DEAD,6)
361+#define K_DBREVE K(KT_DEAD,7)
362+#define K_DABDOT K(KT_DEAD,8)
363+#define K_DABRING K(KT_DEAD,9)
364+#define K_DDBACUTE K(KT_DEAD,10)
365+#define K_DCARON K(KT_DEAD,11)
366+#define K_DOGONEK K(KT_DEAD,12)
367+#define K_DIOTA K(KT_DEAD,13)
368+#define K_DVOICED K(KT_DEAD,14)
369+#define K_DSEMVOICED K(KT_DEAD,15)
370+#define K_DBEDOT K(KT_DEAD,16)
371+#define K_DHOOK K(KT_DEAD,17)
372+#define K_DHORN K(KT_DEAD,18)
373+#define K_DSTROKE K(KT_DEAD,19)
374+#define K_DABCOMMA K(KT_DEAD,20)
375+#define K_DABREVCOMMA K(KT_DEAD,21)
376+#define K_DDBGRAVE K(KT_DEAD,22)
377+#define K_DINVBREVE K(KT_DEAD,23)
378+#define K_DBECOMMA K(KT_DEAD,24)
379+#define K_DCURRENCY K(KT_DEAD,25)
380+#define K_DGREEK K(KT_DEAD,26)
360381
361−#define NR_DEAD 6
382+#define NR_DEAD 27
362383
363384 #define K_DOWN K(KT_CUR,0)
364385 #define K_LEFT K(KT_CUR,1)
include/uapi/linux/kfd_ioctl.h+30−3
@@ -76,6 +76,12 @@ struct kfd_ioctl_update_queue_args { · 75 unmodified lines
7676 __u32 queue_priority; /* to KFD */
7777 };
7878
79+struct kfd_ioctl_set_cu_mask_args {
80+ __u32 queue_id; /* to KFD */
81+ __u32 num_cu_mask; /* to KFD */
82+ __u64 cu_mask_ptr; /* to KFD */
83+};
84+
7985 /* For kfd_ioctl_set_memory_policy_args.default_policy and alternate_policy */
8086 #define KFD_IOC_CACHE_POLICY_COHERENT 0
8187 #define KFD_IOC_CACHE_POLICY_NONCOHERENT 1
@@ -189,6 +195,15 @@ struct kfd_ioctl_dbg_wave_control_args { · 107 unmodified lines
189195
190196 #define KFD_SIGNAL_EVENT_LIMIT 4096
191197
198+/* For kfd_event_data.hw_exception_data.reset_type. */
199+#define KFD_HW_EXCEPTION_WHOLE_GPU_RESET 0
200+#define KFD_HW_EXCEPTION_PER_ENGINE_RESET 1
201+
202+/* For kfd_event_data.hw_exception_data.reset_cause. */
203+#define KFD_HW_EXCEPTION_GPU_HANG 0
204+#define KFD_HW_EXCEPTION_ECC 1
205+
206+
192207 struct kfd_ioctl_create_event_args {
193208 __u64 event_page_offset; /* from KFD */
194209 __u32 event_trigger_data; /* from KFD - signal events only */
@@ -219,7 +234,7 @@ struct kfd_memory_exception_failure { · 24 unmodified lines
219234 __u32 NotPresent; /* Page not present or supervisor privilege */
220235 __u32 ReadOnly; /* Write access to a read-only page */
221236 __u32 NoExecute; /* Execute access to a page marked NX */
222− __u32 pad;
237+ __u32 imprecise; /* Can't determine the exact fault address */
223238 };
224239
225240 /* memory exception data*/
@@ -230,10 +245,19 @@ struct kfd_hsa_memory_exception_data { · 4 unmodified lines
230245 __u32 pad;
231246 };
232247
233−/* Event data*/
248+/* hw exception data */
249+struct kfd_hsa_hw_exception_data {
250+ uint32_t reset_type;
251+ uint32_t reset_cause;
252+ uint32_t memory_lost;
253+ uint32_t gpu_id;
254+};
255+
256+/* Event data */
234257 struct kfd_event_data {
235258 union {
236259 struct kfd_hsa_memory_exception_data memory_exception_data;
260+ struct kfd_hsa_hw_exception_data hw_exception_data;
237261 }; /* From KFD */
238262 __u64 kfd_event_data_ext; /* pointer to an extension structure
239263 for future exception types */
@@ -448,7 +472,10 @@ struct kfd_ioctl_unmap_memory_from_gpu_args { · 208 unmodified lines
448472 #define AMDKFD_IOC_UNMAP_MEMORY_FROM_GPU \
449473 AMDKFD_IOWR(0x19, struct kfd_ioctl_unmap_memory_from_gpu_args)
450474
475+#define AMDKFD_IOC_SET_CU_MASK \
476+ AMDKFD_IOW(0x1A, struct kfd_ioctl_set_cu_mask_args)
477+
451478 #define AMDKFD_COMMAND_START 0x01
452−#define AMDKFD_COMMAND_END 0x1A
479+#define AMDKFD_COMMAND_END 0x1B
453480
454481 #endif
include/uapi/linux/kvm.h+6−0
@@ -949,6 +949,9 @@ struct kvm_ppc_resize_hpt { · 948 unmodified lines
949949 #define KVM_CAP_GET_MSR_FEATURES 153
950950 #define KVM_CAP_HYPERV_EVENTFD 154
951951 #define KVM_CAP_HYPERV_TLBFLUSH 155
952+#define KVM_CAP_S390_HPAGE_1M 156
953+#define KVM_CAP_NESTED_STATE 157
954+#define KVM_CAP_ARM_INJECT_SERROR_ESR 158
952955
953956 #ifdef KVM_CAP_IRQ_ROUTING
954957
@@ -1391,6 +1394,9 @@ struct kvm_enc_region { · 436 unmodified lines
13911394 /* Available with KVM_CAP_HYPERV_EVENTFD */
13921395 #define KVM_HYPERV_EVENTFD _IOW(KVMIO, 0xbd, struct kvm_hyperv_eventfd)
13931396
1397+/* Available with KVM_CAP_NESTED_STATE */
1398+#define KVM_GET_NESTED_STATE _IOWR(KVMIO, 0xbe, struct kvm_nested_state)
1399+#define KVM_SET_NESTED_STATE _IOW(KVMIO, 0xbf, struct kvm_nested_state)
13941400
13951401 /* Secure Encrypted Virtualization command */
13961402 enum sev_cmd_id {
include/uapi/linux/kvm_para.h+2−0
@@ -13,6 +13,7 @@ · 12 unmodified lines
1313 /* Return values for hypercalls */
1414 #define KVM_ENOSYS 1000
1515 #define KVM_EFAULT EFAULT
16+#define KVM_EINVAL EINVAL
1617 #define KVM_E2BIG E2BIG
1718 #define KVM_EPERM EPERM
1819 #define KVM_EOPNOTSUPP 95
@@ -26,6 +27,7 @@ · 7 unmodified lines
2627 #define KVM_HC_MIPS_EXIT_VM 7
2728 #define KVM_HC_MIPS_CONSOLE_OUTPUT 8
2829 #define KVM_HC_CLOCK_PAIRING 9
30+#define KVM_HC_SEND_IPI 10
2931
3032 /*
3133 * hypercalls use architecture specific
include/uapi/linux/l2tp.h+8−7
@@ -60,14 +60,14 @@ struct sockaddr_l2tpip6 { · 59 unmodified lines
6060 /*
6161 * Commands.
6262 * Valid TLVs of each command are:-
63− * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid
63+ * TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum
6464 * TUNNEL_DELETE - CONN_ID
6565 * TUNNEL_MODIFY - CONN_ID, udpcsum
6666 * TUNNEL_GETSTATS - CONN_ID, (stats)
6767 * TUNNEL_GET - CONN_ID, (...)
68− * SESSION_CREATE - SESSION_ID, PW_TYPE, data_seq, cookie, peer_cookie, l2spec
68+ * SESSION_CREATE - SESSION_ID, PW_TYPE, cookie, peer_cookie, l2spec
6969 * SESSION_DELETE - SESSION_ID
70− * SESSION_MODIFY - SESSION_ID, data_seq
70+ * SESSION_MODIFY - SESSION_ID
7171 * SESSION_GET - SESSION_ID, (...)
7272 * SESSION_GETSTATS - SESSION_ID, (stats)
7373 *
@@ -95,7 +95,7 @@ enum { · 21 unmodified lines
9595 L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
9696 L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
9797 L2TP_ATTR_OFFSET, /* u16 (not used) */
98− L2TP_ATTR_DATA_SEQ, /* u16 */
98+ L2TP_ATTR_DATA_SEQ, /* u16 (not used) */
9999 L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
100100 L2TP_ATTR_L2SPEC_LEN, /* u8 (not used) */
101101 L2TP_ATTR_PROTO_VERSION, /* u8 */
@@ -105,7 +105,7 @@ enum { · 3 unmodified lines
105105 L2TP_ATTR_SESSION_ID, /* u32 */
106106 L2TP_ATTR_PEER_SESSION_ID, /* u32 */
107107 L2TP_ATTR_UDP_CSUM, /* u8 */
108− L2TP_ATTR_VLAN_ID, /* u16 */
108+ L2TP_ATTR_VLAN_ID, /* u16 (not used) */
109109 L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
110110 L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
111111 L2TP_ATTR_DEBUG, /* u32, enum l2tp_debug_flags */
@@ -119,8 +119,8 @@ enum { · 7 unmodified lines
119119 L2TP_ATTR_IP_DADDR, /* u32 */
120120 L2TP_ATTR_UDP_SPORT, /* u16 */
121121 L2TP_ATTR_UDP_DPORT, /* u16 */
122− L2TP_ATTR_MTU, /* u16 */
123− L2TP_ATTR_MRU, /* u16 */
122+ L2TP_ATTR_MTU, /* u16 (not used) */
123+ L2TP_ATTR_MRU, /* u16 (not used) */
124124 L2TP_ATTR_STATS, /* nested */
125125 L2TP_ATTR_IP6_SADDR, /* struct in6_addr */
126126 L2TP_ATTR_IP6_DADDR, /* struct in6_addr */
@@ -169,6 +169,7 @@ enum l2tp_encap_type { · 42 unmodified lines
169169 L2TP_ENCAPTYPE_IP,
170170 };
171171
172+/* For L2TP_ATTR_DATA_SEQ. Unused. */
172173 enum l2tp_seqmode {
173174 L2TP_SEQ_NONE = 0,
174175 L2TP_SEQ_IP = 1,
include/uapi/linux/media-bus-format.h+2−1
@@ -62,7 +62,7 @@ · 61 unmodified lines
6262 #define MEDIA_BUS_FMT_RGB121212_1X36 0x1019
6363 #define MEDIA_BUS_FMT_RGB161616_1X48 0x101a
6464
65−/* YUV (including grey) - next is 0x202c */
65+/* YUV (including grey) - next is 0x202d */
6666 #define MEDIA_BUS_FMT_Y8_1X8 0x2001
6767 #define MEDIA_BUS_FMT_UV8_1X8 0x2015
6868 #define MEDIA_BUS_FMT_UYVY8_1_5X8 0x2002
@@ -74,6 +74,7 @@ · 5 unmodified lines
7474 #define MEDIA_BUS_FMT_YUYV8_2X8 0x2008
7575 #define MEDIA_BUS_FMT_YVYU8_2X8 0x2009
7676 #define MEDIA_BUS_FMT_Y10_1X10 0x200a
77+#define MEDIA_BUS_FMT_Y10_2X8_PADHI_LE 0x202c
7778 #define MEDIA_BUS_FMT_UYVY10_2X10 0x2018
7879 #define MEDIA_BUS_FMT_VYUY10_2X10 0x2019
7980 #define MEDIA_BUS_FMT_YUYV10_2X10 0x200b
include/uapi/linux/media.h+35−11
@@ -25,7 +25,6 @@ · 24 unmodified lines
2525 #endif
2626 #include <linux/ioctl.h>
2727 #include <linux/types.h>
28−#include <linux/version.h>
2928
3029 struct media_device_info {
3130 char driver[16];
@@ -89,12 +88,6 @@ struct media_device_info { · 57 unmodified lines
8988 #define MEDIA_ENT_F_FLASH (MEDIA_ENT_F_OLD_SUBDEV_BASE + 2)
9089 #define MEDIA_ENT_F_LENS (MEDIA_ENT_F_OLD_SUBDEV_BASE + 3)
9190
92−/*
93− * Video decoder functions
94− */
95−#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
96−#define MEDIA_ENT_F_DTV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
97−
9891 /*
9992 * Digital TV, analog TV, radio and/or software defined radio tuner functions.
10093 *
@@ -132,6 +125,8 @@ struct media_device_info { · 31 unmodified lines
132125 #define MEDIA_ENT_F_PROC_VIDEO_LUT (MEDIA_ENT_F_BASE + 0x4004)
133126 #define MEDIA_ENT_F_PROC_VIDEO_SCALER (MEDIA_ENT_F_BASE + 0x4005)
134127 #define MEDIA_ENT_F_PROC_VIDEO_STATISTICS (MEDIA_ENT_F_BASE + 0x4006)
128+#define MEDIA_ENT_F_PROC_VIDEO_ENCODER (MEDIA_ENT_F_BASE + 0x4007)
129+#define MEDIA_ENT_F_PROC_VIDEO_DECODER (MEDIA_ENT_F_BASE + 0x4008)
135130
136131 /*
137132 * Switch and bridge entity functions
@@ -139,6 +134,13 @@ struct media_device_info { · 1 unmodified line
139134 #define MEDIA_ENT_F_VID_MUX (MEDIA_ENT_F_BASE + 0x5001)
140135 #define MEDIA_ENT_F_VID_IF_BRIDGE (MEDIA_ENT_F_BASE + 0x5002)
141136
137+/*
138+ * Video decoder/encoder functions
139+ */
140+#define MEDIA_ENT_F_ATV_DECODER (MEDIA_ENT_F_OLD_SUBDEV_BASE + 4)
141+#define MEDIA_ENT_F_DV_DECODER (MEDIA_ENT_F_BASE + 0x6001)
142+#define MEDIA_ENT_F_DV_ENCODER (MEDIA_ENT_F_BASE + 0x6002)
143+
142144 /* Entity flags */
143145 #define MEDIA_ENT_FL_DEFAULT (1 << 0)
144146 #define MEDIA_ENT_FL_CONNECTOR (1 << 1)
@@ -280,11 +282,21 @@ struct media_links_enum { · 135 unmodified lines
280282 * MC next gen API definitions
281283 */
282284
285+/*
286+ * Appeared in 4.19.0.
287+ *
288+ * The media_version argument comes from the media_version field in
289+ * struct media_device_info.
290+ */
291+#define MEDIA_V2_ENTITY_HAS_FLAGS(media_version) \
292+ ((media_version) >= ((4 << 16) | (19 << 8) | 0))
293+
283294 struct media_v2_entity {
284295 __u32 id;
285296 char name[64];
286297 __u32 function; /* Main function of the entity */
287− __u32 reserved[6];
298+ __u32 flags;
299+ __u32 reserved[5];
288300 } __attribute__ ((packed));
289301
290302 /* Should match the specific fields at media_intf_devnode */
@@ -305,11 +317,21 @@ struct media_v2_interface { · 14 unmodified lines
305317 };
306318 } __attribute__ ((packed));
307319
320+/*
321+ * Appeared in 4.19.0.
322+ *
323+ * The media_version argument comes from the media_version field in
324+ * struct media_device_info.
325+ */
326+#define MEDIA_V2_PAD_HAS_INDEX(media_version) \
327+ ((media_version) >= ((4 << 16) | (19 << 8) | 0))
328+
308329 struct media_v2_pad {
309330 __u32 id;
310331 __u32 entity_id;
311332 __u32 flags;
312− __u32 reserved[5];
333+ __u32 index;
334+ __u32 reserved[4];
313335 } __attribute__ ((packed));
314336
315337 struct media_v2_link {
@@ -348,7 +370,7 @@ struct media_v2_topology { · 32 unmodified lines
348370 #define MEDIA_IOC_SETUP_LINK _IOWR('|', 0x03, struct media_link_desc)
349371 #define MEDIA_IOC_G_TOPOLOGY _IOWR('|', 0x04, struct media_v2_topology)
350372
351−#if !defined(__KERNEL__) || defined(__NEED_MEDIA_LEGACY_API)
373+#ifndef __KERNEL__
352374
353375 /*
354376 * Legacy symbols used to avoid userspace compilation breakages.
@@ -380,6 +402,8 @@ struct media_v2_topology { · 25 unmodified lines
380402 #define MEDIA_ENT_T_V4L2_SUBDEV_DECODER MEDIA_ENT_F_ATV_DECODER
381403 #define MEDIA_ENT_T_V4L2_SUBDEV_TUNER MEDIA_ENT_F_TUNER
382404
405+#define MEDIA_ENT_F_DTV_DECODER MEDIA_ENT_F_DV_DECODER
406+
383407 /*
384408 * There is still no ALSA support in the media controller. These
385409 * defines should not have been added and we leave them here only
@@ -396,7 +420,7 @@ struct media_v2_topology { · 10 unmodified lines
396420 #define MEDIA_INTF_T_ALSA_TIMER (MEDIA_INTF_T_ALSA_BASE + 7)
397421
398422 /* Obsolete symbol for media_version, no longer used in the kernel */
399−#define MEDIA_API_VERSION KERNEL_VERSION(0, 1, 0)
423+#define MEDIA_API_VERSION ((0 << 16) | (1 << 8) | 0)
400424
401425 #endif
402426
include/uapi/linux/mii.h+1−0
@@ -136,6 +136,7 @@ · 135 unmodified lines
136136 #define CTL1000_ENABLE_MASTER 0x1000
137137
138138 /* 1000BASE-T Status register */
139+#define LPA_1000MSFAIL 0x8000 /* Master/Slave resolution failure */
139140 #define LPA_1000LOCALRXOK 0x2000 /* Link partner local receiver status */
140141 #define LPA_1000REMRXOK 0x1000 /* Link partner remote receiver status */
141142 #define LPA_1000FULL 0x0800 /* Link partner 1000BASE-T full duplex */
include/uapi/linux/mroute.h+2−0
@@ -120,6 +120,7 @@ enum { · 119 unmodified lines
120120 IPMRA_TABLE_MROUTE_DO_ASSERT,
121121 IPMRA_TABLE_MROUTE_DO_PIM,
122122 IPMRA_TABLE_VIFS,
123+ IPMRA_TABLE_MROUTE_DO_WRVIFWHOLE,
123124 __IPMRA_TABLE_MAX
124125 };
125126 #define IPMRA_TABLE_MAX (__IPMRA_TABLE_MAX - 1)
@@ -173,5 +174,6 @@ enum { · 47 unmodified lines
173174 #define IGMPMSG_NOCACHE 1 /* Kern cache fill request to mrouted */
174175 #define IGMPMSG_WRONGVIF 2 /* For PIM assert processing (unused) */
175176 #define IGMPMSG_WHOLEPKT 3 /* For PIM Register processing */
177+#define IGMPMSG_WRVIFWHOLE 4 /* For PIM Register and assert processing */
176178
177179 #endif /* _UAPI__LINUX_MROUTE_H */
include/uapi/linux/net_tstamp.h+18−0
@@ -141,4 +141,22 @@ struct scm_ts_pktinfo { · 140 unmodified lines
141141 __u32 reserved[2];
142142 };
143143
144+/*
145+ * SO_TXTIME gets a struct sock_txtime with flags being an integer bit
146+ * field comprised of these values.
147+ */
148+enum txtime_flags {
149+ SOF_TXTIME_DEADLINE_MODE = (1 << 0),
150+ SOF_TXTIME_REPORT_ERRORS = (1 << 1),
151+
152+ SOF_TXTIME_FLAGS_LAST = SOF_TXTIME_REPORT_ERRORS,
153+ SOF_TXTIME_FLAGS_MASK = (SOF_TXTIME_FLAGS_LAST - 1) |
154+ SOF_TXTIME_FLAGS_LAST
155+};
156+
157+struct sock_txtime {
158+ clockid_t clockid; /* reference clockid */
159+ __u32 flags; /* as defined by enum txtime_flags */
160+};
161+
144162 #endif /* _NET_TIMESTAMPING_H */
include/uapi/linux/netconf.h+1−0
@@ -18,6 +18,7 @@ enum { · 17 unmodified lines
1818 NETCONFA_PROXY_NEIGH,
1919 NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN,
2020 NETCONFA_INPUT,
21+ NETCONFA_BC_FORWARDING,
2122 __NETCONFA_MAX
2223 };
2324 #define NETCONFA_MAX (__NETCONFA_MAX - 1)
include/uapi/linux/netfilter/nf_tables.h+122−2
@@ -8,6 +8,7 @@ · 7 unmodified lines
88 #define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
99 #define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
1010 #define NFT_USERDATA_MAXLEN 256
11+#define NFT_OSF_MAXGENRELEN 16
1112
1213 /**
1314 * enum nft_registers - nf_tables registers
@@ -921,10 +922,12 @@ enum nft_socket_attributes { · 907 unmodified lines
921922 /*
922923 * enum nft_socket_keys - nf_tables socket expression keys
923924 *
924− * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option_
925+ * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option
926+ * @NFT_SOCKET_MARK: Value of the socket mark
925927 */
926928 enum nft_socket_keys {
927929 NFT_SOCKET_TRANSPARENT,
930+ NFT_SOCKET_MARK,
928931 __NFT_SOCKET_MAX
929932 };
930933 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -955,6 +958,7 @@ enum nft_socket_keys { · 24 unmodified lines
955958 * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address)
956959 * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address)
957960 * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address)
961+ * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack
958962 */
959963 enum nft_ct_keys {
960964 NFT_CT_STATE,
@@ -980,6 +984,7 @@ enum nft_ct_keys { · 19 unmodified lines
980984 NFT_CT_DST_IP,
981985 NFT_CT_SRC_IP6,
982986 NFT_CT_DST_IP6,
987+ NFT_CT_TIMEOUT,
983988 __NFT_CT_MAX
984989 };
985990 #define NFT_CT_MAX (__NFT_CT_MAX - 1)
@@ -1250,6 +1255,22 @@ enum nft_nat_attributes { · 264 unmodified lines
12501255 };
12511256 #define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
12521257
1258+/**
1259+ * enum nft_tproxy_attributes - nf_tables tproxy expression netlink attributes
1260+ *
1261+ * NFTA_TPROXY_FAMILY: Target address family (NLA_U32: nft_registers)
1262+ * NFTA_TPROXY_REG_ADDR: Target address register (NLA_U32: nft_registers)
1263+ * NFTA_TPROXY_REG_PORT: Target port register (NLA_U32: nft_registers)
1264+ */
1265+enum nft_tproxy_attributes {
1266+ NFTA_TPROXY_UNSPEC,
1267+ NFTA_TPROXY_FAMILY,
1268+ NFTA_TPROXY_REG_ADDR,
1269+ NFTA_TPROXY_REG_PORT,
1270+ __NFTA_TPROXY_MAX
1271+};
1272+#define NFTA_TPROXY_MAX (__NFTA_TPROXY_MAX - 1)
1273+
12531274 /**
12541275 * enum nft_masq_attributes - nf_tables masquerade expression attributes
12551276 *
@@ -1392,13 +1413,24 @@ enum nft_ct_helper_attributes { · 136 unmodified lines
13921413 };
13931414 #define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1)
13941415
1416+enum nft_ct_timeout_timeout_attributes {
1417+ NFTA_CT_TIMEOUT_UNSPEC,
1418+ NFTA_CT_TIMEOUT_L3PROTO,
1419+ NFTA_CT_TIMEOUT_L4PROTO,
1420+ NFTA_CT_TIMEOUT_DATA,
1421+ __NFTA_CT_TIMEOUT_MAX,
1422+};
1423+#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1)
1424+
13951425 #define NFT_OBJECT_UNSPEC 0
13961426 #define NFT_OBJECT_COUNTER 1
13971427 #define NFT_OBJECT_QUOTA 2
13981428 #define NFT_OBJECT_CT_HELPER 3
13991429 #define NFT_OBJECT_LIMIT 4
14001430 #define NFT_OBJECT_CONNLIMIT 5
1401−#define __NFT_OBJECT_MAX 6
1431+#define NFT_OBJECT_TUNNEL 6
1432+#define NFT_OBJECT_CT_TIMEOUT 7
1433+#define __NFT_OBJECT_MAX 8
14021434 #define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
14031435
14041436 /**
@@ -1461,6 +1493,13 @@ enum nft_flowtable_hook_attributes { · 56 unmodified lines
14611493 };
14621494 #define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
14631495
1496+enum nft_osf_attributes {
1497+ NFTA_OSF_UNSPEC,
1498+ NFTA_OSF_DREG,
1499+ __NFTA_OSF_MAX,
1500+};
1501+#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
1502+
14641503 /**
14651504 * enum nft_device_attributes - nf_tables device netlink attributes
14661505 *
@@ -1555,4 +1594,85 @@ enum nft_ng_types { · 88 unmodified lines
15551594 };
15561595 #define NFT_NG_MAX (__NFT_NG_MAX - 1)
15571596
1597+enum nft_tunnel_key_ip_attributes {
1598+ NFTA_TUNNEL_KEY_IP_UNSPEC,
1599+ NFTA_TUNNEL_KEY_IP_SRC,
1600+ NFTA_TUNNEL_KEY_IP_DST,
1601+ __NFTA_TUNNEL_KEY_IP_MAX
1602+};
1603+#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1)
1604+
1605+enum nft_tunnel_ip6_attributes {
1606+ NFTA_TUNNEL_KEY_IP6_UNSPEC,
1607+ NFTA_TUNNEL_KEY_IP6_SRC,
1608+ NFTA_TUNNEL_KEY_IP6_DST,
1609+ NFTA_TUNNEL_KEY_IP6_FLOWLABEL,
1610+ __NFTA_TUNNEL_KEY_IP6_MAX
1611+};
1612+#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1)
1613+
1614+enum nft_tunnel_opts_attributes {
1615+ NFTA_TUNNEL_KEY_OPTS_UNSPEC,
1616+ NFTA_TUNNEL_KEY_OPTS_VXLAN,
1617+ NFTA_TUNNEL_KEY_OPTS_ERSPAN,
1618+ __NFTA_TUNNEL_KEY_OPTS_MAX
1619+};
1620+#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
1621+
1622+enum nft_tunnel_opts_vxlan_attributes {
1623+ NFTA_TUNNEL_KEY_VXLAN_UNSPEC,
1624+ NFTA_TUNNEL_KEY_VXLAN_GBP,
1625+ __NFTA_TUNNEL_KEY_VXLAN_MAX
1626+};
1627+#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1)
1628+
1629+enum nft_tunnel_opts_erspan_attributes {
1630+ NFTA_TUNNEL_KEY_ERSPAN_UNSPEC,
1631+ NFTA_TUNNEL_KEY_ERSPAN_VERSION,
1632+ NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX,
1633+ NFTA_TUNNEL_KEY_ERSPAN_V2_HWID,
1634+ NFTA_TUNNEL_KEY_ERSPAN_V2_DIR,
1635+ __NFTA_TUNNEL_KEY_ERSPAN_MAX
1636+};
1637+#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
1638+
1639+enum nft_tunnel_flags {
1640+ NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
1641+ NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
1642+ NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2),
1643+};
1644+#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | \
1645+ NFT_TUNNEL_F_DONT_FRAGMENT | \
1646+ NFT_TUNNEL_F_SEQ_NUMBER)
1647+
1648+enum nft_tunnel_key_attributes {
1649+ NFTA_TUNNEL_KEY_UNSPEC,
1650+ NFTA_TUNNEL_KEY_ID,
1651+ NFTA_TUNNEL_KEY_IP,
1652+ NFTA_TUNNEL_KEY_IP6,
1653+ NFTA_TUNNEL_KEY_FLAGS,
1654+ NFTA_TUNNEL_KEY_TOS,
1655+ NFTA_TUNNEL_KEY_TTL,
1656+ NFTA_TUNNEL_KEY_SPORT,
1657+ NFTA_TUNNEL_KEY_DPORT,
1658+ NFTA_TUNNEL_KEY_OPTS,
1659+ __NFTA_TUNNEL_KEY_MAX
1660+};
1661+#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1)
1662+
1663+enum nft_tunnel_keys {
1664+ NFT_TUNNEL_PATH,
1665+ NFT_TUNNEL_ID,
1666+ __NFT_TUNNEL_MAX
1667+};
1668+#define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1)
1669+
1670+enum nft_tunnel_attributes {
1671+ NFTA_TUNNEL_UNSPEC,
1672+ NFTA_TUNNEL_KEY,
1673+ NFTA_TUNNEL_DREG,
1674+ __NFTA_TUNNEL_MAX
1675+};
1676+#define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1)
1677+
15581678 #endif /* _LINUX_NF_TABLES_H */
include/uapi/linux/netfilter/nfnetlink_osf.hrenamed from include/uapi/linux/netfilter/nf_osf.h+34−0
@@ -2,6 +2,8 @@ · 1 unmodified line
22 #define _NF_OSF_H
33
44 #include <linux/types.h>
5+#include <linux/ip.h>
6+#include <linux/tcp.h>
57
68 #define MAXGENRELEN 32
79
@@ -16,9 +18,14 @@ · 8 unmodified lines
1618
1719 #define NF_OSF_TTL_TRUE 0 /* True ip and fingerprint TTL comparison */
1820
21+/* Check if ip TTL is less than fingerprint one */
22+#define NF_OSF_TTL_LESS 1
23+
1924 /* Do not compare ip and fingerprint TTL at all */
2025 #define NF_OSF_TTL_NOCHECK 2
2126
27+#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | \
28+ NF_OSF_LOG | NF_OSF_INVERT)
2229 /* Wildcard MSS (kind of).
2330 * It is used to implement a state machine for the different wildcard values
2431 * of the MSS and window sizes.
@@ -83,4 +90,31 @@ enum iana_options { · 58 unmodified lines
8390 OSFOPT_EMPTY = 255,
8491 };
8592
93+/* Initial window size option state machine: multiple of mss, mtu or
94+ * plain numeric value. Can also be made as plain numeric value which
95+ * is not a multiple of specified value.
96+ */
97+enum nf_osf_window_size_options {
98+ OSF_WSS_PLAIN = 0,
99+ OSF_WSS_MSS,
100+ OSF_WSS_MTU,
101+ OSF_WSS_MODULO,
102+ OSF_WSS_MAX,
103+};
104+
105+enum nf_osf_attr_type {
106+ OSF_ATTR_UNSPEC,
107+ OSF_ATTR_FINGER,
108+ OSF_ATTR_MAX,
109+};
110+
111+/*
112+ * Add/remove fingerprint from the kernel.
113+ */
114+enum nf_osf_msg_types {
115+ OSF_MSG_ADD,
116+ OSF_MSG_REMOVE,
117+ OSF_MSG_MAX,
118+};
119+
86120 #endif /* _NF_OSF_H */
include/uapi/linux/netfilter/xt_osf.h+5−19
@@ -21,9 +21,7 @@ · 20 unmodified lines
2121 #define _XT_OSF_H
2222
2323 #include <linux/types.h>
24−#include <linux/ip.h>
25−#include <linux/tcp.h>
26−#include <linux/netfilter/nf_osf.h>
24+#include <linux/netfilter/nfnetlink_osf.h>
2725
2826 #define XT_OSF_GENRE NF_OSF_GENRE
2927 #define XT_OSF_INVERT NF_OSF_INVERT
@@ -37,8 +35,7 @@ · 7 unmodified lines
3735
3836 #define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE
3937 #define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK
40−
41−#define XT_OSF_TTL_LESS 1 /* Check if ip TTL is less than fingerprint one */
38+#define XT_OSF_TTL_LESS NF_OSF_TTL_LESS
4239
4340 #define xt_osf_wc nf_osf_wc
4441 #define xt_osf_opt nf_osf_opt
@@ -47,19 +44,8 @@ · 2 unmodified lines
4744 #define xt_osf_finger nf_osf_finger
4845 #define xt_osf_nlmsg nf_osf_nlmsg
4946
50−/*
51− * Add/remove fingerprint from the kernel.
52− */
53−enum xt_osf_msg_types {
54− OSF_MSG_ADD,
55− OSF_MSG_REMOVE,
56− OSF_MSG_MAX,
57−};
58−
59−enum xt_osf_attr_type {
60− OSF_ATTR_UNSPEC,
61− OSF_ATTR_FINGER,
62− OSF_ATTR_MAX,
63−};
47+#define xt_osf_window_size_options nf_osf_window_size_options
48+#define xt_osf_attr_type nf_osf_attr_type
49+#define xt_osf_msg_types nf_osf_msg_types
6450
6551 #endif /* _XT_OSF_H */
include/uapi/linux/netfilter_bridge.h+11−0
@@ -26,4 +26,15 @@ · 25 unmodified lines
2626 #define NF_BR_BROUTING 5
2727 #define NF_BR_NUMHOOKS 6
2828
29+enum nf_br_hook_priorities {
30+ NF_BR_PRI_FIRST = INT_MIN,
31+ NF_BR_PRI_NAT_DST_BRIDGED = -300,
32+ NF_BR_PRI_FILTER_BRIDGED = -200,
33+ NF_BR_PRI_BRNF = 0,
34+ NF_BR_PRI_NAT_DST_OTHER = 100,
35+ NF_BR_PRI_FILTER_OTHER = 200,
36+ NF_BR_PRI_NAT_SRC = 300,
37+ NF_BR_PRI_LAST = INT_MAX,
38+};
39+
2940 #endif /* _UAPI__LINUX_BRIDGE_NETFILTER_H */
include/uapi/linux/nl80211.h+101−1
@@ -2237,6 +2237,9 @@ enum nl80211_commands { · 2236 unmodified lines
22372237 * enforced.
22382238 * @NL80211_ATTR_TXQ_QUANTUM: TXQ scheduler quantum (bytes). Number of bytes
22392239 * a flow is assigned on each round of the DRR scheduler.
2240+ * @NL80211_ATTR_HE_CAPABILITY: HE Capability information element (from
2241+ * association request when used with NL80211_CMD_NEW_STATION). Can be set
2242+ * only if %NL80211_STA_FLAG_WME is set.
22402243 *
22412244 * @NUM_NL80211_ATTR: total number of nl80211_attrs available
22422245 * @NL80211_ATTR_MAX: highest attribute number currently defined
@@ -2677,6 +2680,8 @@ enum nl80211_attrs { · 434 unmodified lines
26772680 NL80211_ATTR_TXQ_MEMORY_LIMIT,
26782681 NL80211_ATTR_TXQ_QUANTUM,
26792682
2683+ NL80211_ATTR_HE_CAPABILITY,
2684+
26802685 /* add attributes here, update the policy in nl80211.c */
26812686
26822687 __NL80211_ATTR_AFTER_LAST,
@@ -2726,7 +2731,8 @@ enum nl80211_attrs { · 43 unmodified lines
27262731 #define NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY 24
27272732 #define NL80211_HT_CAPABILITY_LEN 26
27282733 #define NL80211_VHT_CAPABILITY_LEN 12
2729−
2734+#define NL80211_HE_MIN_CAPABILITY_LEN 16
2735+#define NL80211_HE_MAX_CAPABILITY_LEN 51
27302736 #define NL80211_MAX_NR_CIPHER_SUITES 5
27312737 #define NL80211_MAX_NR_AKM_SUITES 2
27322738
@@ -2853,6 +2859,38 @@ struct nl80211_sta_flag_update { · 120 unmodified lines
28532859 __u32 set;
28542860 } __attribute__((packed));
28552861
2862+/**
2863+ * enum nl80211_he_gi - HE guard interval
2864+ * @NL80211_RATE_INFO_HE_GI_0_8: 0.8 usec
2865+ * @NL80211_RATE_INFO_HE_GI_1_6: 1.6 usec
2866+ * @NL80211_RATE_INFO_HE_GI_3_2: 3.2 usec
2867+ */
2868+enum nl80211_he_gi {
2869+ NL80211_RATE_INFO_HE_GI_0_8,
2870+ NL80211_RATE_INFO_HE_GI_1_6,
2871+ NL80211_RATE_INFO_HE_GI_3_2,
2872+};
2873+
2874+/**
2875+ * enum nl80211_he_ru_alloc - HE RU allocation values
2876+ * @NL80211_RATE_INFO_HE_RU_ALLOC_26: 26-tone RU allocation
2877+ * @NL80211_RATE_INFO_HE_RU_ALLOC_52: 52-tone RU allocation
2878+ * @NL80211_RATE_INFO_HE_RU_ALLOC_106: 106-tone RU allocation
2879+ * @NL80211_RATE_INFO_HE_RU_ALLOC_242: 242-tone RU allocation
2880+ * @NL80211_RATE_INFO_HE_RU_ALLOC_484: 484-tone RU allocation
2881+ * @NL80211_RATE_INFO_HE_RU_ALLOC_996: 996-tone RU allocation
2882+ * @NL80211_RATE_INFO_HE_RU_ALLOC_2x996: 2x996-tone RU allocation
2883+ */
2884+enum nl80211_he_ru_alloc {
2885+ NL80211_RATE_INFO_HE_RU_ALLOC_26,
2886+ NL80211_RATE_INFO_HE_RU_ALLOC_52,
2887+ NL80211_RATE_INFO_HE_RU_ALLOC_106,
2888+ NL80211_RATE_INFO_HE_RU_ALLOC_242,
2889+ NL80211_RATE_INFO_HE_RU_ALLOC_484,
2890+ NL80211_RATE_INFO_HE_RU_ALLOC_996,
2891+ NL80211_RATE_INFO_HE_RU_ALLOC_2x996,
2892+};
2893+
28562894 /**
28572895 * enum nl80211_rate_info - bitrate information
28582896 *
@@ -2885,6 +2923,13 @@ struct nl80211_sta_flag_update { · 26 unmodified lines
28852923 * @NL80211_RATE_INFO_5_MHZ_WIDTH: 5 MHz width - note that this is
28862924 * a legacy rate and will be reported as the actual bitrate, i.e.
28872925 * a quarter of the base (20 MHz) rate
2926+ * @NL80211_RATE_INFO_HE_MCS: HE MCS index (u8, 0-11)
2927+ * @NL80211_RATE_INFO_HE_NSS: HE NSS value (u8, 1-8)
2928+ * @NL80211_RATE_INFO_HE_GI: HE guard interval identifier
2929+ * (u8, see &enum nl80211_he_gi)
2930+ * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
2931+ * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
2932+ * non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
28882933 * @__NL80211_RATE_INFO_AFTER_LAST: internal use
28892934 */
28902935 enum nl80211_rate_info {
@@ -2901,6 +2946,11 @@ enum nl80211_rate_info { · 10 unmodified lines
29012946 NL80211_RATE_INFO_160_MHZ_WIDTH,
29022947 NL80211_RATE_INFO_10_MHZ_WIDTH,
29032948 NL80211_RATE_INFO_5_MHZ_WIDTH,
2949+ NL80211_RATE_INFO_HE_MCS,
2950+ NL80211_RATE_INFO_HE_NSS,
2951+ NL80211_RATE_INFO_HE_GI,
2952+ NL80211_RATE_INFO_HE_DCM,
2953+ NL80211_RATE_INFO_HE_RU_ALLOC,
29042954
29052955 /* keep last */
29062956 __NL80211_RATE_INFO_AFTER_LAST,
@@ -3166,6 +3216,38 @@ enum nl80211_mpath_info { · 259 unmodified lines
31663216 NL80211_MPATH_INFO_MAX = __NL80211_MPATH_INFO_AFTER_LAST - 1
31673217 };
31683218
3219+/**
3220+ * enum nl80211_band_iftype_attr - Interface type data attributes
3221+ *
3222+ * @__NL80211_BAND_IFTYPE_ATTR_INVALID: attribute number 0 is reserved
3223+ * @NL80211_BAND_IFTYPE_ATTR_IFTYPES: nested attribute containing a flag attribute
3224+ * for each interface type that supports the band data
3225+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC: HE MAC capabilities as in HE
3226+ * capabilities IE
3227+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY: HE PHY capabilities as in HE
3228+ * capabilities IE
3229+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET: HE supported NSS/MCS as in HE
3230+ * capabilities IE
3231+ * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
3232+ * defined in HE capabilities IE
3233+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
3234+ * defined
3235+ * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
3236+ */
3237+enum nl80211_band_iftype_attr {
3238+ __NL80211_BAND_IFTYPE_ATTR_INVALID,
3239+
3240+ NL80211_BAND_IFTYPE_ATTR_IFTYPES,
3241+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC,
3242+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
3243+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
3244+ NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
3245+
3246+ /* keep last */
3247+ __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
3248+ NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
3249+};
3250+
31693251 /**
31703252 * enum nl80211_band_attr - band attributes
31713253 * @__NL80211_BAND_ATTR_INVALID: attribute number 0 is reserved
@@ -3181,6 +3263,8 @@ enum nl80211_mpath_info { · 9 unmodified lines
31813263 * @NL80211_BAND_ATTR_VHT_MCS_SET: 32-byte attribute containing the MCS set as
31823264 * defined in 802.11ac
31833265 * @NL80211_BAND_ATTR_VHT_CAPA: VHT capabilities, as in the HT information IE
3266+ * @NL80211_BAND_ATTR_IFTYPE_DATA: nested array attribute, with each entry using
3267+ * attributes from &enum nl80211_band_iftype_attr
31843268 * @NL80211_BAND_ATTR_MAX: highest band attribute currently defined
31853269 * @__NL80211_BAND_ATTR_AFTER_LAST: internal use
31863270 */
@@ -3196,6 +3280,7 @@ enum nl80211_band_attr { · 9 unmodified lines
31963280
31973281 NL80211_BAND_ATTR_VHT_MCS_SET,
31983282 NL80211_BAND_ATTR_VHT_CAPA,
3283+ NL80211_BAND_ATTR_IFTYPE_DATA,
31993284
32003285 /* keep last */
32013286 __NL80211_BAND_ATTR_AFTER_LAST,
@@ -5133,6 +5218,11 @@ enum nl80211_feature_flags { · 1931 unmodified lines
51335218 * support to nl80211.
51345219 * @NL80211_EXT_FEATURE_TXQS: Driver supports FQ-CoDel-enabled intermediate
51355220 * TXQs.
5221+ * @NL80211_EXT_FEATURE_SCAN_RANDOM_SN: Driver/device supports randomizing the
5222+ * SN in probe request frames if requested by %NL80211_SCAN_FLAG_RANDOM_SN.
5223+ * @NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT: Driver/device can omit all data
5224+ * except for supported rates from the probe request content if requested
5225+ * by the %NL80211_SCAN_FLAG_MIN_PREQ_CONTENT flag.
51365226 *
51375227 * @NUM_NL80211_EXT_FEATURES: number of extended features.
51385228 * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
@@ -5167,6 +5257,8 @@ enum nl80211_ext_feature_index { · 28 unmodified lines
51675257 NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211,
51685258 NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT,
51695259 NL80211_EXT_FEATURE_TXQS,
5260+ NL80211_EXT_FEATURE_SCAN_RANDOM_SN,
5261+ NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT,
51705262
51715263 /* add new features before the definition below */
51725264 NUM_NL80211_EXT_FEATURES,
@@ -5272,6 +5364,12 @@ enum nl80211_timeout_reason { · 99 unmodified lines
52725364 * possible scan results. This flag hints the driver to use the best
52735365 * possible scan configuration to improve the accuracy in scanning.
52745366 * Latency and power use may get impacted with this flag.
5367+ * @NL80211_SCAN_FLAG_RANDOM_SN: randomize the sequence number in probe
5368+ * request frames from this scan to avoid correlation/tracking being
5369+ * possible.
5370+ * @NL80211_SCAN_FLAG_MIN_PREQ_CONTENT: minimize probe request content to
5371+ * only have supported rates and no additional capabilities (unless
5372+ * added by userspace explicitly.)
52755373 */
52765374 enum nl80211_scan_flags {
52775375 NL80211_SCAN_FLAG_LOW_PRIORITY = 1<<0,
@@ -5285,6 +5383,8 @@ enum nl80211_scan_flags { · 7 unmodified lines
52855383 NL80211_SCAN_FLAG_LOW_SPAN = 1<<8,
52865384 NL80211_SCAN_FLAG_LOW_POWER = 1<<9,
52875385 NL80211_SCAN_FLAG_HIGH_ACCURACY = 1<<10,
5386+ NL80211_SCAN_FLAG_RANDOM_SN = 1<<11,
5387+ NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 1<<12,
52885388 };
52895389
52905390 /**
include/uapi/linux/openvswitch.h+3−0
@@ -840,6 +840,8 @@ struct ovs_action_push_eth { · 839 unmodified lines
840840 * @OVS_ACTION_ATTR_POP_NSH: pop the outermost NSH header off the packet.
841841 * @OVS_ACTION_ATTR_METER: Run packet through a meter, which may drop the
842842 * packet, or modify the packet (e.g., change the DSCP field).
843+ * @OVS_ACTION_ATTR_CLONE: make a copy of the packet and execute a list of
844+ * actions without affecting the original packet and key.
843845 *
844846 * Only a single header can be set with a single %OVS_ACTION_ATTR_SET. Not all
845847 * fields within a header are modifiable, e.g. the IPv4 protocol and fragment
@@ -873,6 +875,7 @@ enum ovs_action_attr { · 27 unmodified lines
873875 OVS_ACTION_ATTR_PUSH_NSH, /* Nested OVS_NSH_KEY_ATTR_*. */
874876 OVS_ACTION_ATTR_POP_NSH, /* No argument. */
875877 OVS_ACTION_ATTR_METER, /* u32 meter ID. */
878+ OVS_ACTION_ATTR_CLONE, /* Nested OVS_CLONE_ATTR_*. */
876879
877880 __OVS_ACTION_ATTR_MAX, /* Nothing past this will be accepted
878881 * from userspace. */
include/uapi/linux/pci_regs.h+3−1
@@ -636,6 +636,7 @@ · 635 unmodified lines
636636 #define PCI_EXP_DEVCAP2_OBFF_MASK 0x000c0000 /* OBFF support mechanism */
637637 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000 /* New message signaling */
638638 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000 /* Re-use WAKE# for OBFF */
639+#define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000 /* End-End TLP Prefix */
639640 #define PCI_EXP_DEVCTL2 40 /* Device Control 2 */
640641 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f /* Completion Timeout Value */
641642 #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010 /* Completion Timeout Disable */
@@ -960,8 +961,9 @@ · 318 unmodified lines
960961 #define PCI_REBAR_CTRL 8 /* control register */
961962 #define PCI_REBAR_CTRL_BAR_IDX 0x00000007 /* BAR index */
962963 #define PCI_REBAR_CTRL_NBAR_MASK 0x000000E0 /* # of resizable BARs */
963−#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # of BARs */
964+#define PCI_REBAR_CTRL_NBAR_SHIFT 5 /* shift for # of BARs */
964965 #define PCI_REBAR_CTRL_BAR_SIZE 0x00001F00 /* BAR size */
966+#define PCI_REBAR_CTRL_BAR_SHIFT 8 /* shift for BAR size */
965967
966968 /* Dynamic Power Allocation */
967969 #define PCI_DPA_CAP 4 /* capability register */
include/uapi/linux/pcitest.h+3−0
@@ -16,5 +16,8 @@ · 15 unmodified lines
1616 #define PCITEST_WRITE _IOW('P', 0x4, unsigned long)
1717 #define PCITEST_READ _IOW('P', 0x5, unsigned long)
1818 #define PCITEST_COPY _IOW('P', 0x6, unsigned long)
19+#define PCITEST_MSIX _IOW('P', 0x7, int)
20+#define PCITEST_SET_IRQTYPE _IOW('P', 0x8, int)
21+#define PCITEST_GET_IRQTYPE _IO('P', 0x9)
1922
2023 #endif /* __UAPI_LINUX_PCITEST_H */
include/uapi/linux/perf_event.h+2−0
@@ -143,6 +143,8 @@ enum perf_event_sample_format { · 142 unmodified lines
143143 PERF_SAMPLE_PHYS_ADDR = 1U << 19,
144144
145145 PERF_SAMPLE_MAX = 1U << 20, /* non-ABI */
146+
147+ __PERF_SAMPLE_CALLCHAIN_EARLY = 1ULL << 63,
146148 };
147149
148150 /*
include/uapi/linux/pkt_cls.h+39−2
@@ -45,6 +45,7 @@ enum { · 44 unmodified lines
4545 * the skb and act like everything
4646 * is alright.
4747 */
48+#define TC_ACT_VALUE_MAX TC_ACT_TRAP
4849
4950 /* There is a special kind of actions called "extended actions",
5051 * which need a value parameter. These have a local opcode located in
@@ -55,11 +56,12 @@ enum { · 4 unmodified lines
5556 #define __TC_ACT_EXT_SHIFT 28
5657 #define __TC_ACT_EXT(local) ((local) << __TC_ACT_EXT_SHIFT)
5758 #define TC_ACT_EXT_VAL_MASK ((1 << __TC_ACT_EXT_SHIFT) - 1)
58−#define TC_ACT_EXT_CMP(combined, opcode) \
59− (((combined) & (~TC_ACT_EXT_VAL_MASK)) == opcode)
59+#define TC_ACT_EXT_OPCODE(combined) ((combined) & (~TC_ACT_EXT_VAL_MASK))
60+#define TC_ACT_EXT_CMP(combined, opcode) (TC_ACT_EXT_OPCODE(combined) == opcode)
6061
6162 #define TC_ACT_JUMP __TC_ACT_EXT(1)
6263 #define TC_ACT_GOTO_CHAIN __TC_ACT_EXT(2)
64+#define TC_ACT_EXT_OPCODE_MAX TC_ACT_GOTO_CHAIN
6365
6466 /* Action type identifiers*/
6567 enum {
@@ -469,11 +471,46 @@ enum { · 403 unmodified lines
469471 TCA_FLOWER_KEY_IP_TTL, /* u8 */
470472 TCA_FLOWER_KEY_IP_TTL_MASK, /* u8 */
471473
474+ TCA_FLOWER_KEY_CVLAN_ID, /* be16 */
475+ TCA_FLOWER_KEY_CVLAN_PRIO, /* u8 */
476+ TCA_FLOWER_KEY_CVLAN_ETH_TYPE, /* be16 */
477+
478+ TCA_FLOWER_KEY_ENC_IP_TOS, /* u8 */
479+ TCA_FLOWER_KEY_ENC_IP_TOS_MASK, /* u8 */
480+ TCA_FLOWER_KEY_ENC_IP_TTL, /* u8 */
481+ TCA_FLOWER_KEY_ENC_IP_TTL_MASK, /* u8 */
482+
483+ TCA_FLOWER_KEY_ENC_OPTS,
484+ TCA_FLOWER_KEY_ENC_OPTS_MASK,
485+
472486 __TCA_FLOWER_MAX,
473487 };
474488
475489 #define TCA_FLOWER_MAX (__TCA_FLOWER_MAX - 1)
476490
491+enum {
492+ TCA_FLOWER_KEY_ENC_OPTS_UNSPEC,
493+ TCA_FLOWER_KEY_ENC_OPTS_GENEVE, /* Nested
494+ * TCA_FLOWER_KEY_ENC_OPT_GENEVE_
495+ * attributes
496+ */
497+ __TCA_FLOWER_KEY_ENC_OPTS_MAX,
498+};
499+
500+#define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
501+
502+enum {
503+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_UNSPEC,
504+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_CLASS, /* u16 */
505+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
506+ TCA_FLOWER_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
507+
508+ __TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX,
509+};
510+
511+#define TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX \
512+ (__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
513+
477514 enum {
478515 TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
479516 TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
include/uapi/linux/pkt_sched.h+150−0
@@ -124,6 +124,21 @@ struct tc_fifo_qopt { · 123 unmodified lines
124124 __u32 limit; /* Queue length: bytes for bfifo, packets for pfifo */
125125 };
126126
127+/* SKBPRIO section */
128+
129+/*
130+ * Priorities go from zero to (SKBPRIO_MAX_PRIORITY - 1).
131+ * SKBPRIO_MAX_PRIORITY should be at least 64 in order for skbprio to be able
132+ * to map one to one the DS field of IPV4 and IPV6 headers.
133+ * Memory allocation grows linearly with SKBPRIO_MAX_PRIORITY.
134+ */
135+
136+#define SKBPRIO_MAX_PRIORITY 64
137+
138+struct tc_skbprio_qopt {
139+ __u32 limit; /* Queue length in packets. */
140+};
141+
127142 /* PRIO section */
128143
129144 #define TCQ_PRIO_BANDS 16
@@ -539,6 +554,7 @@ enum { · 409 unmodified lines
539554 TCA_NETEM_LATENCY64,
540555 TCA_NETEM_JITTER64,
541556 TCA_NETEM_SLOT,
557+ TCA_NETEM_SLOT_DIST,
542558 __TCA_NETEM_MAX,
543559 };
544560
@@ -581,6 +597,8 @@ struct tc_netem_slot { · 36 unmodified lines
581597 __s64 max_delay;
582598 __s32 max_packets;
583599 __s32 max_bytes;
600+ __s64 dist_delay; /* nsec */
601+ __s64 dist_jitter; /* nsec */
584602 };
585603
586604 enum {
@@ -934,4 +952,136 @@ enum { · 347 unmodified lines
934952
935953 #define TCA_CBS_MAX (__TCA_CBS_MAX - 1)
936954
955+
956+/* ETF */
957+struct tc_etf_qopt {
958+ __s32 delta;
959+ __s32 clockid;
960+ __u32 flags;
961+#define TC_ETF_DEADLINE_MODE_ON BIT(0)
962+#define TC_ETF_OFFLOAD_ON BIT(1)
963+};
964+
965+enum {
966+ TCA_ETF_UNSPEC,
967+ TCA_ETF_PARMS,
968+ __TCA_ETF_MAX,
969+};
970+
971+#define TCA_ETF_MAX (__TCA_ETF_MAX - 1)
972+
973+
974+/* CAKE */
975+enum {
976+ TCA_CAKE_UNSPEC,
977+ TCA_CAKE_PAD,
978+ TCA_CAKE_BASE_RATE64,
979+ TCA_CAKE_DIFFSERV_MODE,
980+ TCA_CAKE_ATM,
981+ TCA_CAKE_FLOW_MODE,
982+ TCA_CAKE_OVERHEAD,
983+ TCA_CAKE_RTT,
984+ TCA_CAKE_TARGET,
985+ TCA_CAKE_AUTORATE,
986+ TCA_CAKE_MEMORY,
987+ TCA_CAKE_NAT,
988+ TCA_CAKE_RAW,
989+ TCA_CAKE_WASH,
990+ TCA_CAKE_MPU,
991+ TCA_CAKE_INGRESS,
992+ TCA_CAKE_ACK_FILTER,
993+ TCA_CAKE_SPLIT_GSO,
994+ __TCA_CAKE_MAX
995+};
996+#define TCA_CAKE_MAX (__TCA_CAKE_MAX - 1)
997+
998+enum {
999+ __TCA_CAKE_STATS_INVALID,
1000+ TCA_CAKE_STATS_PAD,
1001+ TCA_CAKE_STATS_CAPACITY_ESTIMATE64,
1002+ TCA_CAKE_STATS_MEMORY_LIMIT,
1003+ TCA_CAKE_STATS_MEMORY_USED,
1004+ TCA_CAKE_STATS_AVG_NETOFF,
1005+ TCA_CAKE_STATS_MIN_NETLEN,
1006+ TCA_CAKE_STATS_MAX_NETLEN,
1007+ TCA_CAKE_STATS_MIN_ADJLEN,
1008+ TCA_CAKE_STATS_MAX_ADJLEN,
1009+ TCA_CAKE_STATS_TIN_STATS,
1010+ TCA_CAKE_STATS_DEFICIT,
1011+ TCA_CAKE_STATS_COBALT_COUNT,
1012+ TCA_CAKE_STATS_DROPPING,
1013+ TCA_CAKE_STATS_DROP_NEXT_US,
1014+ TCA_CAKE_STATS_P_DROP,
1015+ TCA_CAKE_STATS_BLUE_TIMER_US,
1016+ __TCA_CAKE_STATS_MAX
1017+};
1018+#define TCA_CAKE_STATS_MAX (__TCA_CAKE_STATS_MAX - 1)
1019+
1020+enum {
1021+ __TCA_CAKE_TIN_STATS_INVALID,
1022+ TCA_CAKE_TIN_STATS_PAD,
1023+ TCA_CAKE_TIN_STATS_SENT_PACKETS,
1024+ TCA_CAKE_TIN_STATS_SENT_BYTES64,
1025+ TCA_CAKE_TIN_STATS_DROPPED_PACKETS,
1026+ TCA_CAKE_TIN_STATS_DROPPED_BYTES64,
1027+ TCA_CAKE_TIN_STATS_ACKS_DROPPED_PACKETS,
1028+ TCA_CAKE_TIN_STATS_ACKS_DROPPED_BYTES64,
1029+ TCA_CAKE_TIN_STATS_ECN_MARKED_PACKETS,
1030+ TCA_CAKE_TIN_STATS_ECN_MARKED_BYTES64,
1031+ TCA_CAKE_TIN_STATS_BACKLOG_PACKETS,
1032+ TCA_CAKE_TIN_STATS_BACKLOG_BYTES,
1033+ TCA_CAKE_TIN_STATS_THRESHOLD_RATE64,
1034+ TCA_CAKE_TIN_STATS_TARGET_US,
1035+ TCA_CAKE_TIN_STATS_INTERVAL_US,
1036+ TCA_CAKE_TIN_STATS_WAY_INDIRECT_HITS,
1037+ TCA_CAKE_TIN_STATS_WAY_MISSES,
1038+ TCA_CAKE_TIN_STATS_WAY_COLLISIONS,
1039+ TCA_CAKE_TIN_STATS_PEAK_DELAY_US,
1040+ TCA_CAKE_TIN_STATS_AVG_DELAY_US,
1041+ TCA_CAKE_TIN_STATS_BASE_DELAY_US,
1042+ TCA_CAKE_TIN_STATS_SPARSE_FLOWS,
1043+ TCA_CAKE_TIN_STATS_BULK_FLOWS,
1044+ TCA_CAKE_TIN_STATS_UNRESPONSIVE_FLOWS,
1045+ TCA_CAKE_TIN_STATS_MAX_SKBLEN,
1046+ TCA_CAKE_TIN_STATS_FLOW_QUANTUM,
1047+ __TCA_CAKE_TIN_STATS_MAX
1048+};
1049+#define TCA_CAKE_TIN_STATS_MAX (__TCA_CAKE_TIN_STATS_MAX - 1)
1050+#define TC_CAKE_MAX_TINS (8)
1051+
1052+enum {
1053+ CAKE_FLOW_NONE = 0,
1054+ CAKE_FLOW_SRC_IP,
1055+ CAKE_FLOW_DST_IP,
1056+ CAKE_FLOW_HOSTS, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_DST_IP */
1057+ CAKE_FLOW_FLOWS,
1058+ CAKE_FLOW_DUAL_SRC, /* = CAKE_FLOW_SRC_IP | CAKE_FLOW_FLOWS */
1059+ CAKE_FLOW_DUAL_DST, /* = CAKE_FLOW_DST_IP | CAKE_FLOW_FLOWS */
1060+ CAKE_FLOW_TRIPLE, /* = CAKE_FLOW_HOSTS | CAKE_FLOW_FLOWS */
1061+ CAKE_FLOW_MAX,
1062+};
1063+
1064+enum {
1065+ CAKE_DIFFSERV_DIFFSERV3 = 0,
1066+ CAKE_DIFFSERV_DIFFSERV4,
1067+ CAKE_DIFFSERV_DIFFSERV8,
1068+ CAKE_DIFFSERV_BESTEFFORT,
1069+ CAKE_DIFFSERV_PRECEDENCE,
1070+ CAKE_DIFFSERV_MAX
1071+};
1072+
1073+enum {
1074+ CAKE_ACK_NONE = 0,
1075+ CAKE_ACK_FILTER,
1076+ CAKE_ACK_AGGRESSIVE,
1077+ CAKE_ACK_MAX
1078+};
1079+
1080+enum {
1081+ CAKE_ATM_NONE = 0,
1082+ CAKE_ATM_ATM,
1083+ CAKE_ATM_PTM,
1084+ CAKE_ATM_MAX
1085+};
1086+
9371087 #endif
include/uapi/linux/pmu.h+2−2
@@ -93,8 +93,8 @@ enum { · 92 unmodified lines
9393 PMU_HEATHROW_BASED, /* PowerBook G3 series */
9494 PMU_PADDINGTON_BASED, /* 1999 PowerBook G3 */
9595 PMU_KEYLARGO_BASED, /* Core99 motherboard (PMU99) */
96− PMU_68K_V1, /* 68K PMU, version 1 */
97− PMU_68K_V2, /* 68K PMU, version 2 */
96+ PMU_68K_V1, /* Unused/deprecated */
97+ PMU_68K_V2, /* Unused/deprecated */
9898 };
9999
100100 /* PMU PMU_POWER_EVENTS commands */
include/uapi/linux/ppp-ioctl.h+1−1
@@ -68,7 +68,7 @@ struct ppp_option_data { · 67 unmodified lines
6868 struct pppol2tp_ioc_stats {
6969 __u16 tunnel_id; /* redundant */
7070 __u16 session_id; /* if zero, get tunnel stats */
71− __u32 using_ipsec:1; /* valid only for session_id == 0 */
71+ __u32 using_ipsec:1;
7272 __aligned_u64 tx_packets;
7373 __aligned_u64 tx_bytes;
7474 __aligned_u64 tx_errors;
include/uapi/linux/rds.h+67−2
@@ -1,6 +1,6 @@
11 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
22 /*
3− * Copyright (c) 2008 Oracle. All rights reserved.
3+ * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
44 *
55 * This software is available to you under a choice of one of two
66 * licenses. You may choose to be licensed under the terms of the GNU
@@ -118,7 +118,17 @@ · 111 unmodified lines
118118 #define RDS_INFO_IB_CONNECTIONS 10008
119119 #define RDS_INFO_CONNECTION_STATS 10009
120120 #define RDS_INFO_IWARP_CONNECTIONS 10010
121−#define RDS_INFO_LAST 10010
121+
122+/* PF_RDS6 options */
123+#define RDS6_INFO_CONNECTIONS 10011
124+#define RDS6_INFO_SEND_MESSAGES 10012
125+#define RDS6_INFO_RETRANS_MESSAGES 10013
126+#define RDS6_INFO_RECV_MESSAGES 10014
127+#define RDS6_INFO_SOCKETS 10015
128+#define RDS6_INFO_TCP_SOCKETS 10016
129+#define RDS6_INFO_IB_CONNECTIONS 10017
130+
131+#define RDS_INFO_LAST 10017
122132
123133 struct rds_info_counter {
124134 __u8 name[32];
@@ -140,6 +150,15 @@ struct rds_info_connection { · 15 unmodified lines
140150 __u8 flags;
141151 } __attribute__((packed));
142152
153+struct rds6_info_connection {
154+ __u64 next_tx_seq;
155+ __u64 next_rx_seq;
156+ struct in6_addr laddr;
157+ struct in6_addr faddr;
158+ __u8 transport[TRANSNAMSIZ]; /* null term ascii */
159+ __u8 flags;
160+} __attribute__((packed));
161+
143162 #define RDS_INFO_MESSAGE_FLAG_ACK 0x01
144163 #define RDS_INFO_MESSAGE_FLAG_FAST_ACK 0x02
145164
@@ -153,6 +172,17 @@ struct rds_info_message { · 7 unmodified lines
153172 __u8 flags;
154173 } __attribute__((packed));
155174
175+struct rds6_info_message {
176+ __u64 seq;
177+ __u32 len;
178+ struct in6_addr laddr;
179+ struct in6_addr faddr;
180+ __be16 lport;
181+ __be16 fport;
182+ __u8 flags;
183+ __u8 tos;
184+} __attribute__((packed));
185+
156186 struct rds_info_socket {
157187 __u32 sndbuf;
158188 __be32 bound_addr;
@@ -163,6 +193,16 @@ struct rds_info_socket { · 4 unmodified lines
163193 __u64 inum;
164194 } __attribute__((packed));
165195
196+struct rds6_info_socket {
197+ __u32 sndbuf;
198+ struct in6_addr bound_addr;
199+ struct in6_addr connected_addr;
200+ __be16 bound_port;
201+ __be16 connected_port;
202+ __u32 rcvbuf;
203+ __u64 inum;
204+} __attribute__((packed));
205+
166206 struct rds_info_tcp_socket {
167207 __be32 local_addr;
168208 __be16 local_port;
@@ -175,6 +215,18 @@ struct rds_info_tcp_socket { · 6 unmodified lines
175215 __u32 last_seen_una;
176216 } __attribute__((packed));
177217
218+struct rds6_info_tcp_socket {
219+ struct in6_addr local_addr;
220+ __be16 local_port;
221+ struct in6_addr peer_addr;
222+ __be16 peer_port;
223+ __u64 hdr_rem;
224+ __u64 data_rem;
225+ __u32 last_sent_nxt;
226+ __u32 last_expected_una;
227+ __u32 last_seen_una;
228+} __attribute__((packed));
229+
178230 #define RDS_IB_GID_LEN 16
179231 struct rds_info_rdma_connection {
180232 __be32 src_addr;
@@ -189,6 +241,19 @@ struct rds_info_rdma_connection { · 8 unmodified lines
189241 __u32 rdma_mr_size;
190242 };
191243
244+struct rds6_info_rdma_connection {
245+ struct in6_addr src_addr;
246+ struct in6_addr dst_addr;
247+ __u8 src_gid[RDS_IB_GID_LEN];
248+ __u8 dst_gid[RDS_IB_GID_LEN];
249+
250+ __u32 max_send_wr;
251+ __u32 max_recv_wr;
252+ __u32 max_send_sge;
253+ __u32 rdma_mr_max;
254+ __u32 rdma_mr_size;
255+};
256+
192257 /* RDS message Receive Path Latency points */
193258 enum rds_message_rxpath_latency {
194259 RDS_MSG_RX_HDR_TO_DGRAM_START = 0,
include/uapi/linux/rseq.h+58−44
@@ -10,13 +10,8 @@ · 9 unmodified lines
1010 * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
1111 */
1212
13−#ifdef __KERNEL__
14−# include <linux/types.h>
15−#else
16−# include <stdint.h>
17−#endif
18−
19−#include <linux/types_32_64.h>
13+#include <linux/types.h>
14+#include <asm/byteorder.h>
2015
2116 enum rseq_cpu_id_state {
2217 RSEQ_CPU_ID_UNINITIALIZED = -1,
@@ -52,10 +47,10 @@ struct rseq_cs { · 29 unmodified lines
5247 __u32 version;
5348 /* enum rseq_cs_flags */
5449 __u32 flags;
55− LINUX_FIELD_u32_u64(start_ip);
50+ __u64 start_ip;
5651 /* Offset from start_ip. */
57− LINUX_FIELD_u32_u64(post_commit_offset);
58− LINUX_FIELD_u32_u64(abort_ip);
52+ __u64 post_commit_offset;
53+ __u64 abort_ip;
5954 } __attribute__((aligned(4 * sizeof(__u64))));
6055
6156 /*
@@ -67,28 +62,30 @@ struct rseq_cs { · 5 unmodified lines
6762 struct rseq {
6863 /*
6964 * Restartable sequences cpu_id_start field. Updated by the
70− * kernel, and read by user-space with single-copy atomicity
71− * semantics. Aligned on 32-bit. Always contains a value in the
72− * range of possible CPUs, although the value may not be the
73− * actual current CPU (e.g. if rseq is not initialized). This
74− * CPU number value should always be compared against the value
75− * of the cpu_id field before performing a rseq commit or
76− * returning a value read from a data structure indexed using
77− * the cpu_id_start value.
65+ * kernel. Read by user-space with single-copy atomicity
66+ * semantics. This field should only be read by the thread which
67+ * registered this data structure. Aligned on 32-bit. Always
68+ * contains a value in the range of possible CPUs, although the
69+ * value may not be the actual current CPU (e.g. if rseq is not
70+ * initialized). This CPU number value should always be compared
71+ * against the value of the cpu_id field before performing a rseq
72+ * commit or returning a value read from a data structure indexed
73+ * using the cpu_id_start value.
7874 */
7975 __u32 cpu_id_start;
8076 /*
81− * Restartable sequences cpu_id field. Updated by the kernel,
82− * and read by user-space with single-copy atomicity semantics.
83− * Aligned on 32-bit. Values RSEQ_CPU_ID_UNINITIALIZED and
84− * RSEQ_CPU_ID_REGISTRATION_FAILED have a special semantic: the
85− * former means "rseq uninitialized", and latter means "rseq
86− * initialization failed". This value is meant to be read within
87− * rseq critical sections and compared with the cpu_id_start
88− * value previously read, before performing the commit instruction,
89− * or read and compared with the cpu_id_start value before returning
90− * a value loaded from a data structure indexed using the
91− * cpu_id_start value.
77+ * Restartable sequences cpu_id field. Updated by the kernel.
78+ * Read by user-space with single-copy atomicity semantics. This
79+ * field should only be read by the thread which registered this
80+ * data structure. Aligned on 32-bit. Values
81+ * RSEQ_CPU_ID_UNINITIALIZED and RSEQ_CPU_ID_REGISTRATION_FAILED
82+ * have a special semantic: the former means "rseq uninitialized",
83+ * and latter means "rseq initialization failed". This value is
84+ * meant to be read within rseq critical sections and compared
85+ * with the cpu_id_start value previously read, before performing
86+ * the commit instruction, or read and compared with the
87+ * cpu_id_start value before returning a value loaded from a data
88+ * structure indexed using the cpu_id_start value.
9289 */
9390 __u32 cpu_id;
9491 /*
@@ -105,27 +102,44 @@ struct rseq { · 10 unmodified lines
105102 * targeted by the rseq_cs. Also needs to be set to NULL by user-space
106103 * before reclaiming memory that contains the targeted struct rseq_cs.
107104 *
108− * Read and set by the kernel with single-copy atomicity semantics.
109− * Set by user-space with single-copy atomicity semantics. Aligned
110− * on 64-bit.
105+ * Read and set by the kernel. Set by user-space with single-copy
106+ * atomicity semantics. This field should only be updated by the
107+ * thread which registered this data structure. Aligned on 64-bit.
111108 */
112− LINUX_FIELD_u32_u64(rseq_cs);
109+ union {
110+ __u64 ptr64;
111+#ifdef __LP64__
112+ __u64 ptr;
113+#else
114+ struct {
115+#if (defined(__BYTE_ORDER) && (__BYTE_ORDER == __BIG_ENDIAN)) || defined(__BIG_ENDIAN)
116+ __u32 padding; /* Initialized to zero. */
117+ __u32 ptr32;
118+#else /* LITTLE */
119+ __u32 ptr32;
120+ __u32 padding; /* Initialized to zero. */
121+#endif /* ENDIAN */
122+ } ptr;
123+#endif
124+ } rseq_cs;
125+
113126 /*
114− * - RSEQ_DISABLE flag:
127+ * Restartable sequences flags field.
128+ *
129+ * This field should only be updated by the thread which
130+ * registered this data structure. Read by the kernel.
131+ * Mainly used for single-stepping through rseq critical sections
132+ * with debuggers.
115133 *
116− * Fallback fast-track flag for single-stepping.
117− * Set by user-space if lack of progress is detected.
118− * Cleared by user-space after rseq finish.
119− * Read by the kernel.
120134 * - RSEQ_CS_FLAG_NO_RESTART_ON_PREEMPT
121− * Inhibit instruction sequence block restart and event
122− * counter increment on preemption for this thread.
135+ * Inhibit instruction sequence block restart on preemption
136+ * for this thread.
123137 * - RSEQ_CS_FLAG_NO_RESTART_ON_SIGNAL
124− * Inhibit instruction sequence block restart and event
125− * counter increment on signal delivery for this thread.
138+ * Inhibit instruction sequence block restart on signal
139+ * delivery for this thread.
126140 * - RSEQ_CS_FLAG_NO_RESTART_ON_MIGRATE
127− * Inhibit instruction sequence block restart and event
128− * counter increment on migration for this thread.
141+ * Inhibit instruction sequence block restart on migration for
142+ * this thread.
129143 */
130144 __u32 flags;
131145 } __attribute__((aligned(4 * sizeof(__u64))));
include/uapi/linux/rtnetlink.h+7−0
@@ -150,6 +150,13 @@ enum { · 149 unmodified lines
150150 RTM_NEWCACHEREPORT = 96,
151151 #define RTM_NEWCACHEREPORT RTM_NEWCACHEREPORT
152152
153+ RTM_NEWCHAIN = 100,
154+#define RTM_NEWCHAIN RTM_NEWCHAIN
155+ RTM_DELCHAIN,
156+#define RTM_DELCHAIN RTM_DELCHAIN
157+ RTM_GETCHAIN,
158+#define RTM_GETCHAIN RTM_GETCHAIN
159+
153160 __RTM_MAX,
154161 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
155162 };
include/uapi/linux/sctp.h+5−0
@@ -100,6 +100,7 @@ typedef __s32 sctp_assoc_t; · 99 unmodified lines
100100 #define SCTP_RECVNXTINFO 33
101101 #define SCTP_DEFAULT_SNDINFO 34
102102 #define SCTP_AUTH_DEACTIVATE_KEY 35
103+#define SCTP_REUSE_PORT 36
103104
104105 /* Internal Socket Options. Some of the sctp library functions are
105106 * implemented using these socket options.
@@ -762,6 +763,8 @@ enum sctp_spp_flags { · 656 unmodified lines
762763 SPP_SACKDELAY_DISABLE = 1<<6, /*Disable SACK*/
763764 SPP_SACKDELAY = SPP_SACKDELAY_ENABLE | SPP_SACKDELAY_DISABLE,
764765 SPP_HB_TIME_IS_ZERO = 1<<7, /* Set HB delay to 0 */
766+ SPP_IPV6_FLOWLABEL = 1<<8,
767+ SPP_DSCP = 1<<9,
765768 };
766769
767770 struct sctp_paddrparams {
@@ -772,6 +775,8 @@ struct sctp_paddrparams { · 4 unmodified lines
772775 __u32 spp_pathmtu;
773776 __u32 spp_sackdelay;
774777 __u32 spp_flags;
778+ __u32 spp_ipv6_flowlabel;
779+ __u8 spp_dscp;
775780 } __attribute__((packed, aligned(4)));
776781
777782 /*
include/uapi/linux/smc_diag.h+24−1
@@ -20,7 +20,7 @@ struct smc_diag_req { · 19 unmodified lines
2020 struct smc_diag_msg {
2121 __u8 diag_family;
2222 __u8 diag_state;
23− __u8 diag_fallback;
23+ __u8 diag_mode;
2424 __u8 diag_shutdown;
2525 struct inet_diag_sockid id;
2626
@@ -28,6 +28,13 @@ struct smc_diag_msg { · 1 unmodified line
2828 __u64 diag_inode;
2929 };
3030
31+/* Mode of a connection */
32+enum {
33+ SMC_DIAG_MODE_SMCR,
34+ SMC_DIAG_MODE_FALLBACK_TCP,
35+ SMC_DIAG_MODE_SMCD,
36+};
37+
3138 /* Extensions */
3239
3340 enum {
@@ -35,6 +42,8 @@ enum { · 1 unmodified line
3542 SMC_DIAG_CONNINFO,
3643 SMC_DIAG_LGRINFO,
3744 SMC_DIAG_SHUTDOWN,
45+ SMC_DIAG_DMBINFO,
46+ SMC_DIAG_FALLBACK,
3847 __SMC_DIAG_MAX,
3948 };
4049
@@ -83,4 +92,18 @@ struct smc_diag_lgrinfo { · 42 unmodified lines
8392 struct smc_diag_linkinfo lnk[1];
8493 __u8 role;
8594 };
95+
96+struct smc_diag_fallback {
97+ __u32 reason;
98+ __u32 peer_diagnosis;
99+};
100+
101+struct smcd_diag_dmbinfo { /* SMC-D Socket internals */
102+ __u32 linkid; /* Link identifier */
103+ __u64 peer_gid; /* Peer GID */
104+ __u64 my_gid; /* My GID */
105+ __u64 token; /* Token of DMB */
106+ __u64 peer_token; /* Token of remote DMBE */
107+};
108+
86109 #endif /* _UAPI_SMC_DIAG_H_ */
include/uapi/linux/snmp.h+3−0
@@ -56,6 +56,7 @@ enum · 55 unmodified lines
5656 IPSTATS_MIB_ECT1PKTS, /* InECT1Pkts */
5757 IPSTATS_MIB_ECT0PKTS, /* InECT0Pkts */
5858 IPSTATS_MIB_CEPKTS, /* InCEPkts */
59+ IPSTATS_MIB_REASM_OVERLAPS, /* ReasmOverlaps */
5960 __IPSTATS_MIB_MAX
6061 };
6162
@@ -279,6 +280,8 @@ enum · 217 unmodified lines
279280 LINUX_MIB_TCPDELIVERED, /* TCPDelivered */
280281 LINUX_MIB_TCPDELIVEREDCE, /* TCPDeliveredCE */
281282 LINUX_MIB_TCPACKCOMPRESSED, /* TCPAckCompressed */
283+ LINUX_MIB_TCPZEROWINDOWDROP, /* TCPZeroWindowDrop */
284+ LINUX_MIB_TCPRCVQDROP, /* TCPRcvQDrop */
282285 __LINUX_MIB_MAX
283286 };
284287
include/uapi/linux/sysctl.h+2−1
@@ -575,7 +575,8 @@ enum { · 574 unmodified lines
575575
576576 /* /proc/sys/net/ipv6/icmp */
577577 enum {
578− NET_IPV6_ICMP_RATELIMIT=1
578+ NET_IPV6_ICMP_RATELIMIT = 1,
579+ NET_IPV6_ICMP_ECHO_IGNORE_ALL = 2
579580 };
580581
581582 /* /proc/sys/net/<protocol>/neigh/<dev> */
include/uapi/linux/tc_act/tc_pedit.h+7−2
@@ -17,13 +17,15 @@ enum { · 16 unmodified lines
1717 TCA_PEDIT_KEY_EX,
1818 __TCA_PEDIT_MAX
1919 };
20+
2021 #define TCA_PEDIT_MAX (__TCA_PEDIT_MAX - 1)
21−
22+
2223 enum {
2324 TCA_PEDIT_KEY_EX_HTYPE = 1,
2425 TCA_PEDIT_KEY_EX_CMD = 2,
2526 __TCA_PEDIT_KEY_EX_MAX
2627 };
28+
2729 #define TCA_PEDIT_KEY_EX_MAX (__TCA_PEDIT_KEY_EX_MAX - 1)
2830
2931 /* TCA_PEDIT_KEY_EX_HDR_TYPE_NETWROK is a special case for legacy users. It
@@ -38,6 +40,7 @@ enum pedit_header_type { · 8 unmodified lines
3840 TCA_PEDIT_KEY_EX_HDR_TYPE_UDP = 5,
3941 __PEDIT_HDR_TYPE_MAX,
4042 };
43+
4144 #define TCA_PEDIT_HDR_TYPE_MAX (__PEDIT_HDR_TYPE_MAX - 1)
4245
4346 enum pedit_cmd {
@@ -45,6 +48,7 @@ enum pedit_cmd { · 1 unmodified line
4548 TCA_PEDIT_KEY_EX_CMD_ADD = 1,
4649 __PEDIT_CMD_MAX,
4750 };
51+
4852 #define TCA_PEDIT_CMD_MAX (__PEDIT_CMD_MAX - 1)
4953
5054 struct tc_pedit_key {
@@ -55,13 +59,14 @@ struct tc_pedit_key { · 4 unmodified lines
5559 __u32 offmask;
5660 __u32 shift;
5761 };
58−
62+
5963 struct tc_pedit_sel {
6064 tc_gen;
6165 unsigned char nkeys;
6266 unsigned char flags;
6367 struct tc_pedit_key keys[0];
6468 };
69+
6570 #define tc_pedit tc_pedit_sel
6671
6772 #endif
include/uapi/linux/tc_act/tc_skbedit.h+2−0
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #define SKBEDIT_F_MARK 0x4
3131 #define SKBEDIT_F_PTYPE 0x8
3232 #define SKBEDIT_F_MASK 0x10
33+#define SKBEDIT_F_INHERITDSFIELD 0x20
3334
3435 struct tc_skbedit {
3536 tc_gen;
@@ -45,6 +46,7 @@ enum { · 9 unmodified lines
4546 TCA_SKBEDIT_PAD,
4647 TCA_SKBEDIT_PTYPE,
4748 TCA_SKBEDIT_MASK,
49+ TCA_SKBEDIT_FLAGS,
4850 __TCA_SKBEDIT_MAX
4951 };
5052 #define TCA_SKBEDIT_MAX (__TCA_SKBEDIT_MAX - 1)
include/uapi/linux/tc_act/tc_tunnel_key.h+28−0
@@ -36,9 +36,37 @@ enum { · 35 unmodified lines
3636 TCA_TUNNEL_KEY_PAD,
3737 TCA_TUNNEL_KEY_ENC_DST_PORT, /* be16 */
3838 TCA_TUNNEL_KEY_NO_CSUM, /* u8 */
39+ TCA_TUNNEL_KEY_ENC_OPTS, /* Nested TCA_TUNNEL_KEY_ENC_OPTS_
40+ * attributes
41+ */
42+ TCA_TUNNEL_KEY_ENC_TOS, /* u8 */
43+ TCA_TUNNEL_KEY_ENC_TTL, /* u8 */
3944 __TCA_TUNNEL_KEY_MAX,
4045 };
4146
4247 #define TCA_TUNNEL_KEY_MAX (__TCA_TUNNEL_KEY_MAX - 1)
4348
49+enum {
50+ TCA_TUNNEL_KEY_ENC_OPTS_UNSPEC,
51+ TCA_TUNNEL_KEY_ENC_OPTS_GENEVE, /* Nested
52+ * TCA_TUNNEL_KEY_ENC_OPTS_
53+ * attributes
54+ */
55+ __TCA_TUNNEL_KEY_ENC_OPTS_MAX,
56+};
57+
58+#define TCA_TUNNEL_KEY_ENC_OPTS_MAX (__TCA_TUNNEL_KEY_ENC_OPTS_MAX - 1)
59+
60+enum {
61+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_UNSPEC,
62+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_CLASS, /* be16 */
63+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_TYPE, /* u8 */
64+ TCA_TUNNEL_KEY_ENC_OPT_GENEVE_DATA, /* 4 to 128 bytes */
65+
66+ __TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX,
67+};
68+
69+#define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
70+ (__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
71+
4472 #endif
include/uapi/linux/tcp.h+13−1
@@ -127,6 +127,10 @@ enum { · 126 unmodified lines
127127
128128 #define TCP_CM_INQ TCP_INQ
129129
130+#define TCP_REPAIR_ON 1
131+#define TCP_REPAIR_OFF 0
132+#define TCP_REPAIR_OFF_NO_WP -1 /* Turn off without window probes */
133+
130134 struct tcp_repair_opt {
131135 __u32 opt_code;
132136 __u32 opt_val;
@@ -231,6 +235,11 @@ struct tcp_info { · 98 unmodified lines
231235
232236 __u32 tcpi_delivered;
233237 __u32 tcpi_delivered_ce;
238+
239+ __u64 tcpi_bytes_sent; /* RFC4898 tcpEStatsPerfHCDataOctetsOut */
240+ __u64 tcpi_bytes_retrans; /* RFC4898 tcpEStatsPerfOctetsRetrans */
241+ __u32 tcpi_dsack_dups; /* RFC4898 tcpEStatsStackDSACKDups */
242+ __u32 tcpi_reord_seen; /* reordering events seen */
234243 };
235244
236245 /* netlink attributes types for SCM_TIMESTAMPING_OPT_STATS */
@@ -253,7 +262,10 @@ enum { · 16 unmodified lines
253262 TCP_NLA_SND_SSTHRESH, /* Slow start size threshold */
254263 TCP_NLA_DELIVERED, /* Data pkts delivered incl. out-of-order */
255264 TCP_NLA_DELIVERED_CE, /* Like above but only ones w/ CE marks */
256−
265+ TCP_NLA_BYTES_SENT, /* Data bytes sent including retransmission */
266+ TCP_NLA_BYTES_RETRANS, /* Data bytes retransmitted */
267+ TCP_NLA_DSACK_DUPS, /* DSACK blocks received */
268+ TCP_NLA_REORD_SEEN, /* reordering events seen */
257269 };
258270
259271 /* for TCP_MD5SIG socket option */
include/uapi/linux/time.h+7−0
@@ -49,6 +49,13 @@ struct __kernel_timespec { · 48 unmodified lines
4949 };
5050 #endif
5151
52+#ifndef __kernel_itimerspec
53+struct __kernel_itimerspec {
54+ struct __kernel_timespec it_interval; /* timer period */
55+ struct __kernel_timespec it_value; /* timer expiration */
56+};
57+#endif
58+
5259 /*
5360 * legacy timeval structure, only embedded in structures that
5461 * traditionally used 'timeval' to pass time intervals (not absolute
include/uapi/linux/tipc_netlink.h+14−0
@@ -121,6 +121,7 @@ enum { · 120 unmodified lines
121121 TIPC_NLA_SOCK_TIPC_STATE, /* u32 */
122122 TIPC_NLA_SOCK_COOKIE, /* u64 */
123123 TIPC_NLA_SOCK_PAD, /* flag */
124+ TIPC_NLA_SOCK_GROUP, /* nest */
124125
125126 __TIPC_NLA_SOCK_MAX,
126127 TIPC_NLA_SOCK_MAX = __TIPC_NLA_SOCK_MAX - 1
@@ -233,6 +234,19 @@ enum { · 106 unmodified lines
233234 TIPC_NLA_MON_PEER_MAX = __TIPC_NLA_MON_PEER_MAX - 1
234235 };
235236
237+/* Nest, socket group info */
238+enum {
239+ TIPC_NLA_SOCK_GROUP_ID, /* u32 */
240+ TIPC_NLA_SOCK_GROUP_OPEN, /* flag */
241+ TIPC_NLA_SOCK_GROUP_NODE_SCOPE, /* flag */
242+ TIPC_NLA_SOCK_GROUP_CLUSTER_SCOPE, /* flag */
243+ TIPC_NLA_SOCK_GROUP_INSTANCE, /* u32 */
244+ TIPC_NLA_SOCK_GROUP_BC_SEND_NEXT, /* u32 */
245+
246+ __TIPC_NLA_SOCK_GROUP_MAX,
247+ TIPC_NLA_SOCK_GROUP_MAX = __TIPC_NLA_SOCK_GROUP_MAX - 1
248+};
249+
236250 /* Nest, connection info */
237251 enum {
238252 TIPC_NLA_CON_UNSPEC,
include/uapi/linux/types_32_64.h+0−50
@@ -1,50 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
2−#ifndef _UAPI_LINUX_TYPES_32_64_H
3−#define _UAPI_LINUX_TYPES_32_64_H
4−
5−/*
6− * linux/types_32_64.h
7− *
8− * Integer type declaration for pointers across 32-bit and 64-bit systems.
9− *
10− * Copyright (c) 2015-2018 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
11− */
12−
13−#ifdef __KERNEL__
14−# include <linux/types.h>
15−#else
16−# include <stdint.h>
17−#endif
18−
19−#include <asm/byteorder.h>
20−
21−#ifdef __BYTE_ORDER
22−# if (__BYTE_ORDER == __BIG_ENDIAN)
23−# define LINUX_BYTE_ORDER_BIG_ENDIAN
24−# else
25−# define LINUX_BYTE_ORDER_LITTLE_ENDIAN
26−# endif
27−#else
28−# ifdef __BIG_ENDIAN
29−# define LINUX_BYTE_ORDER_BIG_ENDIAN
30−# else
31−# define LINUX_BYTE_ORDER_LITTLE_ENDIAN
32−# endif
33−#endif
34−
35−#ifdef __LP64__
36−# define LINUX_FIELD_u32_u64(field) __u64 field
37−# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) field = (intptr_t)v
38−#else
39−# ifdef LINUX_BYTE_ORDER_BIG_ENDIAN
40−# define LINUX_FIELD_u32_u64(field) __u32 field ## _padding, field
41−# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \
42− field ## _padding = 0, field = (intptr_t)v
43−# else
44−# define LINUX_FIELD_u32_u64(field) __u32 field, field ## _padding
45−# define LINUX_FIELD_u32_u64_INIT_ONSTACK(field, v) \
46− field = (intptr_t)v, field ## _padding = 0
47−# endif
48−#endif
49−
50−#endif /* _UAPI_LINUX_TYPES_32_64_H */
include/uapi/linux/usb/audio.h+40−9
@@ -390,33 +390,64 @@ static inline __u8 uac_processing_unit_iChannelNames(struct uac_processing_unit_ · 389 unmodified lines
390390 static inline __u8 uac_processing_unit_bControlSize(struct uac_processing_unit_descriptor *desc,
391391 int protocol)
392392 {
393− return (protocol == UAC_VERSION_1) ?
394− desc->baSourceID[desc->bNrInPins + 4] :
395− 2; /* in UAC2, this value is constant */
393+ switch (protocol) {
394+ case UAC_VERSION_1:
395+ return desc->baSourceID[desc->bNrInPins + 4];
396+ case UAC_VERSION_2:
397+ return 2; /* in UAC2, this value is constant */
398+ case UAC_VERSION_3:
399+ return 4; /* in UAC3, this value is constant */
400+ default:
401+ return 1;
402+ }
396403 }
397404
398405 static inline __u8 *uac_processing_unit_bmControls(struct uac_processing_unit_descriptor *desc,
399406 int protocol)
400407 {
401− return (protocol == UAC_VERSION_1) ?
402− &desc->baSourceID[desc->bNrInPins + 5] :
403− &desc->baSourceID[desc->bNrInPins + 6];
408+ switch (protocol) {
409+ case UAC_VERSION_1:
410+ return &desc->baSourceID[desc->bNrInPins + 5];
411+ case UAC_VERSION_2:
412+ return &desc->baSourceID[desc->bNrInPins + 6];
413+ case UAC_VERSION_3:
414+ return &desc->baSourceID[desc->bNrInPins + 2];
415+ default:
416+ return NULL;
417+ }
404418 }
405419
406420 static inline __u8 uac_processing_unit_iProcessing(struct uac_processing_unit_descriptor *desc,
407421 int protocol)
408422 {
409423 __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
410− return *(uac_processing_unit_bmControls(desc, protocol)
411− + control_size);
424+
425+ switch (protocol) {
426+ case UAC_VERSION_1:
427+ case UAC_VERSION_2:
428+ default:
429+ return *(uac_processing_unit_bmControls(desc, protocol)
430+ + control_size);
431+ case UAC_VERSION_3:
432+ return 0; /* UAC3 does not have this field */
433+ }
412434 }
413435
414436 static inline __u8 *uac_processing_unit_specific(struct uac_processing_unit_descriptor *desc,
415437 int protocol)
416438 {
417439 __u8 control_size = uac_processing_unit_bControlSize(desc, protocol);
418− return uac_processing_unit_bmControls(desc, protocol)
440+
441+ switch (protocol) {
442+ case UAC_VERSION_1:
443+ case UAC_VERSION_2:
444+ default:
445+ return uac_processing_unit_bmControls(desc, protocol)
419446 + control_size + 1;
447+ case UAC_VERSION_3:
448+ return uac_processing_unit_bmControls(desc, protocol)
449+ + control_size;
450+ }
420451 }
421452
422453 /* 4.5.2 Class-Specific AS Interface Descriptor */
include/uapi/linux/usb/g_uvc.h+39−0
@@ -0,0 +1,39 @@
1+/* SPDX-License-Identifier: GPL-2.0+ */
2+/*
3+ * g_uvc.h -- USB Video Class Gadget driver API
4+ *
5+ * Copyright (C) 2009-2010 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
6+ */
7+
8+#ifndef __LINUX_USB_G_UVC_H
9+#define __LINUX_USB_G_UVC_H
10+
11+#include <linux/ioctl.h>
12+#include <linux/types.h>
13+#include <linux/usb/ch9.h>
14+
15+#define UVC_EVENT_FIRST (V4L2_EVENT_PRIVATE_START + 0)
16+#define UVC_EVENT_CONNECT (V4L2_EVENT_PRIVATE_START + 0)
17+#define UVC_EVENT_DISCONNECT (V4L2_EVENT_PRIVATE_START + 1)
18+#define UVC_EVENT_STREAMON (V4L2_EVENT_PRIVATE_START + 2)
19+#define UVC_EVENT_STREAMOFF (V4L2_EVENT_PRIVATE_START + 3)
20+#define UVC_EVENT_SETUP (V4L2_EVENT_PRIVATE_START + 4)
21+#define UVC_EVENT_DATA (V4L2_EVENT_PRIVATE_START + 5)
22+#define UVC_EVENT_LAST (V4L2_EVENT_PRIVATE_START + 5)
23+
24+struct uvc_request_data {
25+ __s32 length;
26+ __u8 data[60];
27+};
28+
29+struct uvc_event {
30+ union {
31+ enum usb_device_speed speed;
32+ struct usb_ctrlrequest req;
33+ struct uvc_request_data data;
34+ };
35+};
36+
37+#define UVCIOC_SEND_RESPONSE _IOW('U', 1, struct uvc_request_data)
38+
39+#endif /* __LINUX_USB_G_UVC_H */
include/uapi/linux/usb/tmc.h+13−0
@@ -16,6 +16,8 @@ · 15 unmodified lines
1616 #ifndef __LINUX_USB_TMC_H
1717 #define __LINUX_USB_TMC_H
1818
19+#include <linux/types.h> /* __u8 etc */
20+
1921 /* USB TMC status values */
2022 #define USBTMC_STATUS_SUCCESS 0x01
2123 #define USBTMC_STATUS_PENDING 0x02
@@ -38,6 +40,11 @@ · 16 unmodified lines
3840 #define USBTMC488_REQUEST_GOTO_LOCAL 161
3941 #define USBTMC488_REQUEST_LOCAL_LOCKOUT 162
4042
43+struct usbtmc_termchar {
44+ __u8 term_char;
45+ __u8 term_char_enabled;
46+} __attribute__ ((packed));
47+
4148 /* Request values for USBTMC driver's ioctl entry point */
4249 #define USBTMC_IOC_NR 91
4350 #define USBTMC_IOCTL_INDICATOR_PULSE _IO(USBTMC_IOC_NR, 1)
@@ -46,11 +53,17 @@ · 2 unmodified lines
4653 #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4)
4754 #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6)
4855 #define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7)
56+#define USBTMC_IOCTL_GET_TIMEOUT _IOR(USBTMC_IOC_NR, 9, __u32)
57+#define USBTMC_IOCTL_SET_TIMEOUT _IOW(USBTMC_IOC_NR, 10, __u32)
58+#define USBTMC_IOCTL_EOM_ENABLE _IOW(USBTMC_IOC_NR, 11, __u8)
59+#define USBTMC_IOCTL_CONFIG_TERMCHAR _IOW(USBTMC_IOC_NR, 12, struct usbtmc_termchar)
60+
4961 #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char)
5062 #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char)
5163 #define USBTMC488_IOCTL_REN_CONTROL _IOW(USBTMC_IOC_NR, 19, unsigned char)
5264 #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20)
5365 #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21)
66+#define USBTMC488_IOCTL_TRIGGER _IO(USBTMC_IOC_NR, 22)
5467
5568 /* Driver encoded usb488 capabilities */
5669 #define USBTMC488_CAPABILITY_TRIGGER 1
include/uapi/linux/uvcvideo.h+2−0
@@ -28,6 +28,8 @@ · 27 unmodified lines
2828 #define UVC_CTRL_FLAG_RESTORE (1 << 6)
2929 /* Control can be updated by the camera. */
3030 #define UVC_CTRL_FLAG_AUTO_UPDATE (1 << 7)
31+/* Control supports asynchronous reporting */
32+#define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8)
3133
3234 #define UVC_CTRL_FLAG_GET_RANGE \
3335 (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \
include/uapi/linux/v4l2-controls.h+18−2
@@ -188,7 +188,7 @@ enum v4l2_colorfx { · 187 unmodified lines
188188
189189 /* The base for the imx driver controls.
190190 * We reserve 16 controls for this driver. */
191−#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x1090)
191+#define V4L2_CID_USER_IMX_BASE (V4L2_CID_USER_BASE + 0x10b0)
192192
193193 /* MPEG-class control IDs */
194194 /* The MPEG controls are applicable to all codec controls
@@ -587,7 +587,23 @@ enum v4l2_vp8_golden_frame_sel { · 392 unmodified lines
587587 #define V4L2_CID_MPEG_VIDEO_VPX_MAX_QP (V4L2_CID_MPEG_BASE+508)
588588 #define V4L2_CID_MPEG_VIDEO_VPX_I_FRAME_QP (V4L2_CID_MPEG_BASE+509)
589589 #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510)
590−#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511)
590+
591+#define V4L2_CID_MPEG_VIDEO_VP8_PROFILE (V4L2_CID_MPEG_BASE+511)
592+enum v4l2_mpeg_video_vp8_profile {
593+ V4L2_MPEG_VIDEO_VP8_PROFILE_0 = 0,
594+ V4L2_MPEG_VIDEO_VP8_PROFILE_1 = 1,
595+ V4L2_MPEG_VIDEO_VP8_PROFILE_2 = 2,
596+ V4L2_MPEG_VIDEO_VP8_PROFILE_3 = 3,
597+};
598+/* Deprecated alias for compatibility reasons. */
599+#define V4L2_CID_MPEG_VIDEO_VPX_PROFILE V4L2_CID_MPEG_VIDEO_VP8_PROFILE
600+#define V4L2_CID_MPEG_VIDEO_VP9_PROFILE (V4L2_CID_MPEG_BASE+512)
601+enum v4l2_mpeg_video_vp9_profile {
602+ V4L2_MPEG_VIDEO_VP9_PROFILE_0 = 0,
603+ V4L2_MPEG_VIDEO_VP9_PROFILE_1 = 1,
604+ V4L2_MPEG_VIDEO_VP9_PROFILE_2 = 2,
605+ V4L2_MPEG_VIDEO_VP9_PROFILE_3 = 3,
606+};
591607
592608 /* CIDs for HEVC encoding. */
593609
include/uapi/linux/v4l2-subdev.h+4−0
@@ -170,8 +170,12 @@ struct v4l2_subdev_selection { · 169 unmodified lines
170170 #define VIDIOC_SUBDEV_G_SELECTION _IOWR('V', 61, struct v4l2_subdev_selection)
171171 #define VIDIOC_SUBDEV_S_SELECTION _IOWR('V', 62, struct v4l2_subdev_selection)
172172 /* The following ioctls are identical to the ioctls in videodev2.h */
173+#define VIDIOC_SUBDEV_G_STD _IOR('V', 23, v4l2_std_id)
174+#define VIDIOC_SUBDEV_S_STD _IOW('V', 24, v4l2_std_id)
175+#define VIDIOC_SUBDEV_ENUMSTD _IOWR('V', 25, struct v4l2_standard)
173176 #define VIDIOC_SUBDEV_G_EDID _IOWR('V', 40, struct v4l2_edid)
174177 #define VIDIOC_SUBDEV_S_EDID _IOWR('V', 41, struct v4l2_edid)
178+#define VIDIOC_SUBDEV_QUERYSTD _IOR('V', 63, v4l2_std_id)
175179 #define VIDIOC_SUBDEV_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings)
176180 #define VIDIOC_SUBDEV_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings)
177181 #define VIDIOC_SUBDEV_ENUM_DV_TIMINGS _IOWR('V', 98, struct v4l2_enum_dv_timings)
include/uapi/linux/vhost.h+18−0
@@ -65,6 +65,7 @@ struct vhost_iotlb_msg { · 64 unmodified lines
6565 };
6666
6767 #define VHOST_IOTLB_MSG 0x1
68+#define VHOST_IOTLB_MSG_V2 0x2
6869
6970 struct vhost_msg {
7071 int type;
@@ -74,6 +75,15 @@ struct vhost_msg { · 3 unmodified lines
7475 };
7576 };
7677
78+struct vhost_msg_v2 {
79+ __u32 type;
80+ __u32 reserved;
81+ union {
82+ struct vhost_iotlb_msg iotlb;
83+ __u8 padding[64];
84+ };
85+};
86+
7787 struct vhost_memory_region {
7888 __u64 guest_phys_addr;
7989 __u64 memory_size; /* bytes */
@@ -160,6 +170,14 @@ struct vhost_memory { · 80 unmodified lines
160170 #define VHOST_GET_VRING_BUSYLOOP_TIMEOUT _IOW(VHOST_VIRTIO, 0x24, \
161171 struct vhost_vring_state)
162172
173+/* Set or get vhost backend capability */
174+
175+/* Use message type V2 */
176+#define VHOST_BACKEND_F_IOTLB_MSG_V2 0x1
177+
178+#define VHOST_SET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x25, __u64)
179+#define VHOST_GET_BACKEND_FEATURES _IOW(VHOST_VIRTIO, 0x26, __u64)
180+
163181 /* VHOST_NET specific defines */
164182
165183 /* Attach virtio net ring to a raw socket, or tap device.
include/uapi/linux/videodev2.h+7−1
@@ -522,6 +522,7 @@ struct v4l2_pix_format { · 521 unmodified lines
522522
523523 /* Grey bit-packed formats */
524524 #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B') /* 10 Greyscale bit-packed */
525+#define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P') /* 10 Greyscale, MIPI RAW10 packed */
525526
526527 /* Palette formats */
527528 #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8') /* 8 8-bit palette */
@@ -609,6 +610,11 @@ struct v4l2_pix_format { · 81 unmodified lines
609610 #define V4L2_PIX_FMT_SGBRG12P v4l2_fourcc('p', 'G', 'C', 'C')
610611 #define V4L2_PIX_FMT_SGRBG12P v4l2_fourcc('p', 'g', 'C', 'C')
611612 #define V4L2_PIX_FMT_SRGGB12P v4l2_fourcc('p', 'R', 'C', 'C')
613+ /* 14bit raw bayer packed, 7 bytes for every 4 pixels */
614+#define V4L2_PIX_FMT_SBGGR14P v4l2_fourcc('p', 'B', 'E', 'E')
615+#define V4L2_PIX_FMT_SGBRG14P v4l2_fourcc('p', 'G', 'E', 'E')
616+#define V4L2_PIX_FMT_SGRBG14P v4l2_fourcc('p', 'g', 'E', 'E')
617+#define V4L2_PIX_FMT_SRGGB14P v4l2_fourcc('p', 'R', 'E', 'E')
612618 #define V4L2_PIX_FMT_SBGGR16 v4l2_fourcc('B', 'Y', 'R', '2') /* 16 BGBG.. GRGR.. */
613619 #define V4L2_PIX_FMT_SGBRG16 v4l2_fourcc('G', 'B', '1', '6') /* 16 GBGB.. RGRG.. */
614620 #define V4L2_PIX_FMT_SGRBG16 v4l2_fourcc('G', 'R', '1', '6') /* 16 GRGR.. BGBG.. */
@@ -636,6 +642,7 @@ struct v4l2_pix_format { · 21 unmodified lines
636642 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
637643 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
638644 #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
645+#define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */
639646
640647 /* Vendor-specific formats */
641648 #define V4L2_PIX_FMT_CPIA1 v4l2_fourcc('C', 'P', 'I', 'A') /* cpia1 YUV */
@@ -2310,7 +2317,6 @@ struct v4l2_create_buffers { · 1668 unmodified lines
23102317 *
23112318 */
23122319 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
2313−#define VIDIOC_RESERVED _IO('V', 1)
23142320 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
23152321 #define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format)
23162322 #define VIDIOC_S_FMT _IOWR('V', 5, struct v4l2_format)
include/uapi/linux/xfrm.h+4−1
@@ -305,9 +305,12 @@ enum xfrm_attr_type_t { · 304 unmodified lines
305305 XFRMA_ADDRESS_FILTER, /* struct xfrm_address_filter */
306306 XFRMA_PAD,
307307 XFRMA_OFFLOAD_DEV, /* struct xfrm_state_offload */
308− XFRMA_OUTPUT_MARK, /* __u32 */
308+ XFRMA_SET_MARK, /* __u32 */
309+ XFRMA_SET_MARK_MASK, /* __u32 */
310+ XFRMA_IF_ID, /* __u32 */
309311 __XFRMA_MAX
310312
313+#define XFRMA_OUTPUT_MARK XFRMA_SET_MARK /* Compatibility */
311314 #define XFRMA_MAX (__XFRMA_MAX - 1)
312315 };
313316
include/uapi/mtd/ubi-user.h+16−2
@@ -285,6 +285,20 @@ struct ubi_attach_req { · 284 unmodified lines
285285 __s8 padding[10];
286286 };
287287
288+/*
289+ * UBI volume flags.
290+ *
291+ * @UBI_VOL_SKIP_CRC_CHECK_FLG: skip the CRC check done on a static volume at
292+ * open time. Only valid for static volumes and
293+ * should only be used if the volume user has a
294+ * way to verify data integrity
295+ */
296+enum {
297+ UBI_VOL_SKIP_CRC_CHECK_FLG = 0x1,
298+};
299+
300+#define UBI_VOL_VALID_FLGS (UBI_VOL_SKIP_CRC_CHECK_FLG)
301+
288302 /**
289303 * struct ubi_mkvol_req - volume description data structure used in
290304 * volume creation requests.
@@ -292,7 +306,7 @@ struct ubi_attach_req { · 1 unmodified line
292306 * @alignment: volume alignment
293307 * @bytes: volume size in bytes
294308 * @vol_type: volume type (%UBI_DYNAMIC_VOLUME or %UBI_STATIC_VOLUME)
295− * @padding1: reserved for future, not used, has to be zeroed
309+ * @flags: volume flags (%UBI_VOL_SKIP_CRC_CHECK_FLG)
296310 * @name_len: volume name length
297311 * @padding2: reserved for future, not used, has to be zeroed
298312 * @name: volume name
@@ -321,7 +335,7 @@ struct ubi_mkvol_req { · 22 unmodified lines
321335 __s32 alignment;
322336 __s64 bytes;
323337 __s8 vol_type;
324− __s8 padding1;
338+ __u8 flags;
325339 __s16 name_len;
326340 __s8 padding2[4];
327341 char name[UBI_MAX_VOLUME_NAME + 1];
include/uapi/rdma/cxgb4-abi.h+30−2
@@ -44,6 +44,16 @@ · 43 unmodified lines
4444 * In particular do not use pointer types -- pass pointers in __aligned_u64
4545 * instead.
4646 */
47+
48+enum {
49+ C4IW_64B_CQE = (1 << 0)
50+};
51+
52+struct c4iw_create_cq {
53+ __u32 flags;
54+ __u32 reserved;
55+};
56+
4757 struct c4iw_create_cq_resp {
4858 __aligned_u64 key;
4959 __aligned_u64 gts_key;
@@ -51,11 +61,12 @@ struct c4iw_create_cq_resp { · 1 unmodified line
5161 __u32 cqid;
5262 __u32 size;
5363 __u32 qid_mask;
54− __u32 reserved; /* explicit padding (optional for i386) */
64+ __u32 flags;
5565 };
5666
5767 enum {
58− C4IW_QPF_ONCHIP = (1 << 0)
68+ C4IW_QPF_ONCHIP = (1 << 0),
69+ C4IW_QPF_WRITE_W_IMM = (1 << 1)
5970 };
6071
6172 struct c4iw_create_qp_resp {
@@ -74,6 +85,23 @@ struct c4iw_create_qp_resp { · 12 unmodified lines
7485 __u32 flags;
7586 };
7687
88+struct c4iw_create_srq_resp {
89+ __aligned_u64 srq_key;
90+ __aligned_u64 srq_db_gts_key;
91+ __aligned_u64 srq_memsize;
92+ __u32 srqid;
93+ __u32 srq_size;
94+ __u32 rqt_abs_idx;
95+ __u32 qid_mask;
96+ __u32 flags;
97+ __u32 reserved; /* explicit padding */
98+};
99+
100+enum {
101+ /* HW supports SRQ_LIMIT_REACHED event */
102+ T4_SRQ_LIMIT_SUPPORT = 1 << 0,
103+};
104+
77105 struct c4iw_alloc_ucontext_resp {
78106 __aligned_u64 status_page_key;
79107 __u32 status_page_size;
include/uapi/rdma/hns-abi.h+1−0
@@ -53,6 +53,7 @@ struct hns_roce_ib_create_qp { · 52 unmodified lines
5353 __u8 log_sq_stride;
5454 __u8 sq_no_prefetch;
5555 __u8 reserved[5];
56+ __aligned_u64 sdb_addr;
5657 };
5758
5859 struct hns_roce_ib_create_qp_resp {
include/uapi/rdma/ib_user_ioctl_cmds.h+6−1
@@ -79,7 +79,7 @@ enum uverbs_attrs_destroy_cq_cmd_attr_ids { · 78 unmodified lines
7979 };
8080
8181 enum uverbs_attrs_create_flow_action_esp {
82− UVERBS_ATTR_FLOW_ACTION_ESP_HANDLE,
82+ UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
8383 UVERBS_ATTR_FLOW_ACTION_ESP_ATTRS,
8484 UVERBS_ATTR_FLOW_ACTION_ESP_ESN,
8585 UVERBS_ATTR_FLOW_ACTION_ESP_KEYMAT,
@@ -87,6 +87,11 @@ enum uverbs_attrs_create_flow_action_esp { · 1 unmodified line
8787 UVERBS_ATTR_FLOW_ACTION_ESP_ENCAP,
8888 };
8989
90+enum uverbs_attrs_modify_flow_action_esp {
91+ UVERBS_ATTR_MODIFY_FLOW_ACTION_ESP_HANDLE =
92+ UVERBS_ATTR_CREATE_FLOW_ACTION_ESP_HANDLE,
93+};
94+
9095 enum uverbs_attrs_destroy_flow_action_esp {
9196 UVERBS_ATTR_DESTROY_FLOW_ACTION_HANDLE,
9297 };
include/uapi/rdma/ib_user_ioctl_verbs.h+58−0
@@ -40,6 +40,59 @@ · 39 unmodified lines
4040 #define RDMA_UAPI_PTR(_type, _name) __aligned_u64 _name
4141 #endif
4242
43+enum ib_uverbs_access_flags {
44+ IB_UVERBS_ACCESS_LOCAL_WRITE = 1 << 0,
45+ IB_UVERBS_ACCESS_REMOTE_WRITE = 1 << 1,
46+ IB_UVERBS_ACCESS_REMOTE_READ = 1 << 2,
47+ IB_UVERBS_ACCESS_REMOTE_ATOMIC = 1 << 3,
48+ IB_UVERBS_ACCESS_MW_BIND = 1 << 4,
49+ IB_UVERBS_ACCESS_ZERO_BASED = 1 << 5,
50+ IB_UVERBS_ACCESS_ON_DEMAND = 1 << 6,
51+ IB_UVERBS_ACCESS_HUGETLB = 1 << 7,
52+};
53+
54+enum ib_uverbs_query_port_cap_flags {
55+ IB_UVERBS_PCF_SM = 1 << 1,
56+ IB_UVERBS_PCF_NOTICE_SUP = 1 << 2,
57+ IB_UVERBS_PCF_TRAP_SUP = 1 << 3,
58+ IB_UVERBS_PCF_OPT_IPD_SUP = 1 << 4,
59+ IB_UVERBS_PCF_AUTO_MIGR_SUP = 1 << 5,
60+ IB_UVERBS_PCF_SL_MAP_SUP = 1 << 6,
61+ IB_UVERBS_PCF_MKEY_NVRAM = 1 << 7,
62+ IB_UVERBS_PCF_PKEY_NVRAM = 1 << 8,
63+ IB_UVERBS_PCF_LED_INFO_SUP = 1 << 9,
64+ IB_UVERBS_PCF_SM_DISABLED = 1 << 10,
65+ IB_UVERBS_PCF_SYS_IMAGE_GUID_SUP = 1 << 11,
66+ IB_UVERBS_PCF_PKEY_SW_EXT_PORT_TRAP_SUP = 1 << 12,
67+ IB_UVERBS_PCF_EXTENDED_SPEEDS_SUP = 1 << 14,
68+ IB_UVERBS_PCF_CM_SUP = 1 << 16,
69+ IB_UVERBS_PCF_SNMP_TUNNEL_SUP = 1 << 17,
70+ IB_UVERBS_PCF_REINIT_SUP = 1 << 18,
71+ IB_UVERBS_PCF_DEVICE_MGMT_SUP = 1 << 19,
72+ IB_UVERBS_PCF_VENDOR_CLASS_SUP = 1 << 20,
73+ IB_UVERBS_PCF_DR_NOTICE_SUP = 1 << 21,
74+ IB_UVERBS_PCF_CAP_MASK_NOTICE_SUP = 1 << 22,
75+ IB_UVERBS_PCF_BOOT_MGMT_SUP = 1 << 23,
76+ IB_UVERBS_PCF_LINK_LATENCY_SUP = 1 << 24,
77+ IB_UVERBS_PCF_CLIENT_REG_SUP = 1 << 25,
78+ /*
79+ * IsOtherLocalChangesNoticeSupported is aliased by IP_BASED_GIDS and
80+ * is inaccessible
81+ */
82+ IB_UVERBS_PCF_LINK_SPEED_WIDTH_TABLE_SUP = 1 << 27,
83+ IB_UVERBS_PCF_VENDOR_SPECIFIC_MADS_TABLE_SUP = 1 << 28,
84+ IB_UVERBS_PCF_MCAST_PKEY_TRAP_SUPPRESSION_SUP = 1 << 29,
85+ IB_UVERBS_PCF_MCAST_FDB_TOP_SUP = 1 << 30,
86+ IB_UVERBS_PCF_HIERARCHY_INFO_SUP = 1ULL << 31,
87+
88+ /* NOTE this is an internal flag, not an IBA flag */
89+ IB_UVERBS_PCF_IP_BASED_GIDS = 1 << 26,
90+};
91+
92+enum ib_uverbs_query_port_flags {
93+ IB_UVERBS_QPF_GRH_REQUIRED = 1 << 0,
94+};
95+
4396 enum ib_uverbs_flow_action_esp_keymat {
4497 IB_UVERBS_FLOW_ACTION_ESP_KEYMAT_AES_GCM,
4598 };
@@ -99,4 +152,9 @@ struct ib_uverbs_flow_action_esp { · 53 unmodified lines
99152 __aligned_u64 hard_limit_pkts;
100153 };
101154
155+enum ib_uverbs_read_counters_flags {
156+ /* prefer read values from driver cache */
157+ IB_UVERBS_READ_COUNTERS_PREFER_CACHED = 1 << 0,
158+};
159+
102160 #endif
include/uapi/rdma/ib_user_verbs.h+3−2
@@ -279,7 +279,7 @@ struct ib_uverbs_query_port { · 278 unmodified lines
279279 };
280280
281281 struct ib_uverbs_query_port_resp {
282− __u32 port_cap_flags;
282+ __u32 port_cap_flags; /* see ib_uverbs_query_port_cap_flags */
283283 __u32 max_msg_sz;
284284 __u32 bad_pkey_cntr;
285285 __u32 qkey_viol_cntr;
@@ -299,7 +299,8 @@ struct ib_uverbs_query_port_resp { · 13 unmodified lines
299299 __u8 active_speed;
300300 __u8 phys_state;
301301 __u8 link_layer;
302− __u8 reserved[2];
302+ __u8 flags; /* see ib_uverbs_query_port_flags */
303+ __u8 reserved;
303304 };
304305
305306 struct ib_uverbs_alloc_pd {
include/uapi/rdma/mlx5-abi.h+5−1
@@ -76,6 +76,9 @@ enum mlx5_lib_caps { · 75 unmodified lines
7676 MLX5_LIB_CAP_4K_UAR = (__u64)1 << 0,
7777 };
7878
79+enum mlx5_ib_alloc_uctx_v2_flags {
80+ MLX5_IB_ALLOC_UCTX_DEVX = 1 << 0,
81+};
7982 struct mlx5_ib_alloc_ucontext_req_v2 {
8083 __u32 total_num_bfregs;
8184 __u32 num_low_latency_bfregs;
@@ -90,6 +93,7 @@ struct mlx5_ib_alloc_ucontext_req_v2 { · 8 unmodified lines
9093
9194 enum mlx5_ib_alloc_ucontext_resp_mask {
9295 MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
96+ MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
9397 };
9498
9599 enum mlx5_user_cmds_supp_uhw {
@@ -138,7 +142,7 @@ struct mlx5_ib_alloc_ucontext_resp { · 42 unmodified lines
138142 __u32 log_uar_size;
139143 __u32 num_uars_per_page;
140144 __u32 num_dyn_bfregs;
141− __u32 reserved3;
145+ __u32 dump_fill_mkey;
142146 };
143147
144148 struct mlx5_ib_alloc_pd_resp {
include/uapi/rdma/mlx5_user_ioctl_cmds.h+121−0
@@ -33,6 +33,7 @@ · 32 unmodified lines
3333 #ifndef MLX5_USER_IOCTL_CMDS_H
3434 #define MLX5_USER_IOCTL_CMDS_H
3535
36+#include <linux/types.h>
3637 #include <rdma/ib_user_ioctl_cmds.h>
3738
3839 enum mlx5_ib_create_flow_action_attrs {
@@ -45,4 +46,124 @@ enum mlx5_ib_alloc_dm_attrs { · 6 unmodified lines
4546 MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
4647 };
4748
49+enum mlx5_ib_devx_methods {
50+ MLX5_IB_METHOD_DEVX_OTHER = (1U << UVERBS_ID_NS_SHIFT),
51+ MLX5_IB_METHOD_DEVX_QUERY_UAR,
52+ MLX5_IB_METHOD_DEVX_QUERY_EQN,
53+};
54+
55+enum mlx5_ib_devx_other_attrs {
56+ MLX5_IB_ATTR_DEVX_OTHER_CMD_IN = (1U << UVERBS_ID_NS_SHIFT),
57+ MLX5_IB_ATTR_DEVX_OTHER_CMD_OUT,
58+};
59+
60+enum mlx5_ib_devx_obj_create_attrs {
61+ MLX5_IB_ATTR_DEVX_OBJ_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
62+ MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_IN,
63+ MLX5_IB_ATTR_DEVX_OBJ_CREATE_CMD_OUT,
64+};
65+
66+enum mlx5_ib_devx_query_uar_attrs {
67+ MLX5_IB_ATTR_DEVX_QUERY_UAR_USER_IDX = (1U << UVERBS_ID_NS_SHIFT),
68+ MLX5_IB_ATTR_DEVX_QUERY_UAR_DEV_IDX,
69+};
70+
71+enum mlx5_ib_devx_obj_destroy_attrs {
72+ MLX5_IB_ATTR_DEVX_OBJ_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
73+};
74+
75+enum mlx5_ib_devx_obj_modify_attrs {
76+ MLX5_IB_ATTR_DEVX_OBJ_MODIFY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
77+ MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_IN,
78+ MLX5_IB_ATTR_DEVX_OBJ_MODIFY_CMD_OUT,
79+};
80+
81+enum mlx5_ib_devx_obj_query_attrs {
82+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
83+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_IN,
84+ MLX5_IB_ATTR_DEVX_OBJ_QUERY_CMD_OUT,
85+};
86+
87+enum mlx5_ib_devx_query_eqn_attrs {
88+ MLX5_IB_ATTR_DEVX_QUERY_EQN_USER_VEC = (1U << UVERBS_ID_NS_SHIFT),
89+ MLX5_IB_ATTR_DEVX_QUERY_EQN_DEV_EQN,
90+};
91+
92+enum mlx5_ib_devx_obj_methods {
93+ MLX5_IB_METHOD_DEVX_OBJ_CREATE = (1U << UVERBS_ID_NS_SHIFT),
94+ MLX5_IB_METHOD_DEVX_OBJ_DESTROY,
95+ MLX5_IB_METHOD_DEVX_OBJ_MODIFY,
96+ MLX5_IB_METHOD_DEVX_OBJ_QUERY,
97+};
98+
99+enum mlx5_ib_devx_umem_reg_attrs {
100+ MLX5_IB_ATTR_DEVX_UMEM_REG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
101+ MLX5_IB_ATTR_DEVX_UMEM_REG_ADDR,
102+ MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
103+ MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
104+ MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
105+};
106+
107+enum mlx5_ib_devx_umem_dereg_attrs {
108+ MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
109+};
110+
111+enum mlx5_ib_devx_umem_methods {
112+ MLX5_IB_METHOD_DEVX_UMEM_REG = (1U << UVERBS_ID_NS_SHIFT),
113+ MLX5_IB_METHOD_DEVX_UMEM_DEREG,
114+};
115+
116+enum mlx5_ib_objects {
117+ MLX5_IB_OBJECT_DEVX = (1U << UVERBS_ID_NS_SHIFT),
118+ MLX5_IB_OBJECT_DEVX_OBJ,
119+ MLX5_IB_OBJECT_DEVX_UMEM,
120+ MLX5_IB_OBJECT_FLOW_MATCHER,
121+};
122+
123+enum mlx5_ib_flow_matcher_create_attrs {
124+ MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
125+ MLX5_IB_ATTR_FLOW_MATCHER_MATCH_MASK,
126+ MLX5_IB_ATTR_FLOW_MATCHER_FLOW_TYPE,
127+ MLX5_IB_ATTR_FLOW_MATCHER_MATCH_CRITERIA,
128+};
129+
130+enum mlx5_ib_flow_matcher_destroy_attrs {
131+ MLX5_IB_ATTR_FLOW_MATCHER_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
132+};
133+
134+enum mlx5_ib_flow_matcher_methods {
135+ MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT),
136+ MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
137+};
138+
139+#define MLX5_IB_DW_MATCH_PARAM 0x80
140+
141+struct mlx5_ib_match_params {
142+ __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
143+};
144+
145+enum mlx5_ib_flow_type {
146+ MLX5_IB_FLOW_TYPE_NORMAL,
147+ MLX5_IB_FLOW_TYPE_SNIFFER,
148+ MLX5_IB_FLOW_TYPE_ALL_DEFAULT,
149+ MLX5_IB_FLOW_TYPE_MC_DEFAULT,
150+};
151+
152+enum mlx5_ib_create_flow_attrs {
153+ MLX5_IB_ATTR_CREATE_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
154+ MLX5_IB_ATTR_CREATE_FLOW_MATCH_VALUE,
155+ MLX5_IB_ATTR_CREATE_FLOW_DEST_QP,
156+ MLX5_IB_ATTR_CREATE_FLOW_DEST_DEVX,
157+ MLX5_IB_ATTR_CREATE_FLOW_MATCHER,
158+};
159+
160+enum mlx5_ib_destoy_flow_attrs {
161+ MLX5_IB_ATTR_DESTROY_FLOW_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
162+};
163+
164+enum mlx5_ib_flow_methods {
165+ MLX5_IB_METHOD_CREATE_FLOW = (1U << UVERBS_ID_NS_SHIFT),
166+ MLX5_IB_METHOD_DESTROY_FLOW,
167+};
168+
48169 #endif
include/uapi/rdma/qedr-abi.h+17−0
@@ -111,4 +111,21 @@ struct qedr_create_qp_uresp { · 110 unmodified lines
111111 __u32 reserved;
112112 };
113113
114+struct qedr_create_srq_ureq {
115+ /* user space virtual address of producer pair */
116+ __aligned_u64 prod_pair_addr;
117+
118+ /* user space virtual address of SRQ buffer */
119+ __aligned_u64 srq_addr;
120+
121+ /* length of SRQ buffer */
122+ __aligned_u64 srq_len;
123+};
124+
125+struct qedr_create_srq_uresp {
126+ __u16 srq_id;
127+ __u16 reserved0;
128+ __u32 reserved1;
129+};
130+
114131 #endif /* __QEDR_USER_H__ */
include/uapi/rdma/rdma_user_ioctl_cmds.h+6−1
@@ -62,7 +62,12 @@ struct ib_uverbs_attr { · 61 unmodified lines
6262 } enum_data;
6363 __u16 reserved;
6464 } attr_data;
65− __aligned_u64 data; /* ptr to command, inline data or idr/fd */
65+ union {
66+ /* Used by PTR_IN/OUT, ENUM_IN and IDR */
67+ __aligned_u64 data;
68+ /* Used by FD_IN and FD_OUT */
69+ __s64 data_s64;
70+ };
6671 };
6772
6873 struct ib_uverbs_ioctl_hdr {
include/uapi/xen/gntdev.h+106−0
@@ -5,6 +5,7 @@ · 4 unmodified lines
55 * Interface to /dev/xen/gntdev.
66 *
77 * Copyright (c) 2007, D G Murray
8+ * Copyright (c) 2018, Oleksandr Andrushchenko, EPAM Systems Inc.
89 *
910 * This program is free software; you can redistribute it and/or
1011 * modify it under the terms of the GNU General Public License version 2
@@ -200,4 +201,109 @@ struct ioctl_gntdev_grant_copy { · 189 unmodified lines
200201 /* Send an interrupt on the indicated event channel */
201202 #define UNMAP_NOTIFY_SEND_EVENT 0x2
202203
204+/*
205+ * Flags to be used while requesting memory mapping's backing storage
206+ * to be allocated with DMA API.
207+ */
208+
209+/*
210+ * The buffer is backed with memory allocated with dma_alloc_wc.
211+ */
212+#define GNTDEV_DMA_FLAG_WC (1 << 0)
213+
214+/*
215+ * The buffer is backed with memory allocated with dma_alloc_coherent.
216+ */
217+#define GNTDEV_DMA_FLAG_COHERENT (1 << 1)
218+
219+/*
220+ * Create a dma-buf [1] from grant references @refs of count @count provided
221+ * by the foreign domain @domid with flags @flags.
222+ *
223+ * By default dma-buf is backed by system memory pages, but by providing
224+ * one of the GNTDEV_DMA_FLAG_XXX flags it can also be created as
225+ * a DMA write-combine or coherent buffer, e.g. allocated with dma_alloc_wc/
226+ * dma_alloc_coherent.
227+ *
228+ * Returns 0 if dma-buf was successfully created and the corresponding
229+ * dma-buf's file descriptor is returned in @fd.
230+ *
231+ * [1] Documentation/driver-api/dma-buf.rst
232+ */
233+
234+#define IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS \
235+ _IOC(_IOC_NONE, 'G', 9, \
236+ sizeof(struct ioctl_gntdev_dmabuf_exp_from_refs))
237+struct ioctl_gntdev_dmabuf_exp_from_refs {
238+ /* IN parameters. */
239+ /* Specific options for this dma-buf: see GNTDEV_DMA_FLAG_XXX. */
240+ __u32 flags;
241+ /* Number of grant references in @refs array. */
242+ __u32 count;
243+ /* OUT parameters. */
244+ /* File descriptor of the dma-buf. */
245+ __u32 fd;
246+ /* The domain ID of the grant references to be mapped. */
247+ __u32 domid;
248+ /* Variable IN parameter. */
249+ /* Array of grant references of size @count. */
250+ __u32 refs[1];
251+};
252+
253+/*
254+ * This will block until the dma-buf with the file descriptor @fd is
255+ * released. This is only valid for buffers created with
256+ * IOCTL_GNTDEV_DMABUF_EXP_FROM_REFS.
257+ *
258+ * If within @wait_to_ms milliseconds the buffer is not released
259+ * then -ETIMEDOUT error is returned.
260+ * If the buffer with the file descriptor @fd does not exist or has already
261+ * been released, then -ENOENT is returned. For valid file descriptors
262+ * this must not be treated as error.
263+ */
264+#define IOCTL_GNTDEV_DMABUF_EXP_WAIT_RELEASED \
265+ _IOC(_IOC_NONE, 'G', 10, \
266+ sizeof(struct ioctl_gntdev_dmabuf_exp_wait_released))
267+struct ioctl_gntdev_dmabuf_exp_wait_released {
268+ /* IN parameters */
269+ __u32 fd;
270+ __u32 wait_to_ms;
271+};
272+
273+/*
274+ * Import a dma-buf with file descriptor @fd and export granted references
275+ * to the pages of that dma-buf into array @refs of size @count.
276+ */
277+#define IOCTL_GNTDEV_DMABUF_IMP_TO_REFS \
278+ _IOC(_IOC_NONE, 'G', 11, \
279+ sizeof(struct ioctl_gntdev_dmabuf_imp_to_refs))
280+struct ioctl_gntdev_dmabuf_imp_to_refs {
281+ /* IN parameters. */
282+ /* File descriptor of the dma-buf. */
283+ __u32 fd;
284+ /* Number of grant references in @refs array. */
285+ __u32 count;
286+ /* The domain ID for which references to be granted. */
287+ __u32 domid;
288+ /* Reserved - must be zero. */
289+ __u32 reserved;
290+ /* OUT parameters. */
291+ /* Array of grant references of size @count. */
292+ __u32 refs[1];
293+};
294+
295+/*
296+ * This will close all references to the imported buffer with file descriptor
297+ * @fd, so it can be released by the owner. This is only valid for buffers
298+ * created with IOCTL_GNTDEV_DMABUF_IMP_TO_REFS.
299+ */
300+#define IOCTL_GNTDEV_DMABUF_IMP_RELEASE \
301+ _IOC(_IOC_NONE, 'G', 12, \
302+ sizeof(struct ioctl_gntdev_dmabuf_imp_release))
303+struct ioctl_gntdev_dmabuf_imp_release {
304+ /* IN parameters */
305+ __u32 fd;
306+ __u32 reserved;
307+};
308+
203309 #endif /* __LINUX_PUBLIC_GNTDEV_H__ */

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